アプリ版:「スタンプのみでお礼する」機能のリリースについて

テーブル内のカラム情報を取得するにはどのようなSQLを作ればよいのでしょうか?
欲しい情報は「カラム名・主キーかどうか・データ型・桁数・NULLを許容かどうか」の5つとなります。

SQL Server は2005と2008を使用していて、どちらでも扱えるSQLがあると助かります。

どうぞ宜しくお願いいたします。

A 回答 (2件)

昔、以下のSQLを作ったことがあります。

2005では問題なかったです。
私の用はこれで足りたので必要に応じて修正してみてください。

SELECT
b.name as "Table名",
a.name as "カラム名",
c.name as "データ型",
a.column_id as "カラム順",
a.max_length as "データ長",
a.precision,
a.scale ,
case when a.is_nullable =0 then 'Null不可'
else 'NUll可' end as "NULL",
case when a.is_identity =0 then '×'
else '○' end as "オートナンバー",
case when a.default_object_id = 0 then '×'
else d.definition end as 'デフォルト値',
case when f.index_column_id is not null AND e.is_primary_key = 1 then 'PK'
else '×' end as 'PK'
FROM sys.columns as a
Left outer JOIN sys.objects as b
ON a.object_id = b.object_id
Left outer JOIN sys.types as c
ON a.system_type_id = c.system_type_id
Left outer JOIN sys.default_constraints as d
ON a.default_object_id = d.object_id
Left outer JOIN sys.indexes as e
ON a.object_id = e.object_id
AND e.is_primary_key = 1
Left outer JOIN sys.index_columns as f
ON a.object_id = f.object_id
AND a.column_id = f.column_id
WHERE b.type = 'U'
AND c.name != 'sysname'
ORDER BY b.name,a.column_id
    • good
    • 2

そのためのストアドがデフォルトで用意されています。



[カラム情報取得]
sp_columns
[ @table_name = ] object
[ , [ @table_owner = ] owner ]
[ , [ @table_qualifier = ] qualifier ]
[ , [ @column_name = ] column ]
[ , [ @ODBCVer = ] ODBCVer ]

詳細はヘルプかMSDNをご覧ください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す