SQL

【SQL】SQL Serverのテーブルとカラム情報を取得する方法について

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

説明は以上となります。
この記事が誰かの助けになれば幸いです。