SQL Serverのテーブルとカラム情報を取得する方法について記述します。
カラム情報として型情報なども取得可能なため、資料作成や連携ファイル作成の際に活用できます。
テーブル情報を取得する方法について
SELECT
-- オブジェクト ID
tables.object_id,
-- テーブル名
tables.name AS table_name
FROM
-- テーブル カタログビュー
sys.tables
ORDER BY
tables.object_id
テーブルとカラム情報を取得する方法について
SELECT
-- オブジェクト ID
objects.object_id,
-- テーブル名
objects.name AS table_name,
-- カラム ID
columns.column_id,
-- カラム名
columns.name AS column_name
FROM
sys.objects
INNER JOIN sys.columns on objects.object_id = columns.object_id
WHERE
-- オブジェクトの種類(U:テーブル(ユーザー定義))
objects.type = 'U'
-- AND objects.name in ('テーブル名', ...) と指定すれば特定のテーブルのみ検索可能
ORDER BY
objects.name, columns.column_id
テーブルとカラム情報(型情報などを含む)を取得する方法について
属性や長さ、条件を付けてNULL許容範囲も取得することが可能です。
SELECT
t.object_id AS オブジェクトID,
t.name AS テーブル名,
c.column_id AS カラムID,
c.name AS 項目名,
type_name(user_type_id) AS 属性,
max_length AS 長さ,
CASE
WHEN
is_nullable = 1
THEN
'DEFAULT'
ELSE
'NOT NULL'
END AS NULL許可
FROM
sys.objects t
INNER JOIN sys.columns c ON t.object_id = c.object_id
WHERE
-- オブジェクトの種類(U:テーブル(ユーザー定義))
t.type = 'U'
-- AND objects.name in ('テーブル名', ...) と指定すれば特定のテーブルのみ検索可能
ORDER BY
t.object_id, c.column_id
説明は以上となります。
この記事が誰かの助けになれば幸いです。