【SQLServer】テーブル定義情報 / カラム一覧を取得する方法

SQLServerでテーブル定義を取得する方法をご紹介します。

ここで言うテーブル定義とは、MySQLの「SHOW CREATE TABLE」で取得できる、カラムの商材情報一覧のようなものを指します。

-- テーブル定義取得
SELECT 
    O.object_id
    , C.name AS column_name 
    , TY.name AS type 
    , CASE WHEN I.index_column_id is not null 
        THEN 'TRUE' 
        ELSE   NULL 
        END AS index_column 
    , CASE WHEN KC.parent_object_id is not null 
        THEN 'TRUE' 
        ELSE NULL
        END AS PK 
    , C.user_type_id
    , C.max_length
    , C.precision
    , C.scale
    , C.collation_name
    , C.is_nullable
    , C.is_ansi_padded
    , C.is_rowguidcol
    , C.is_identity
    , C.is_computed
    , C.is_filestream
FROM (
    SELECT  object_id  FROM  sys.objects 
    WHERE  type = 'U' 
    AND name = [テーブル名] ) O 
INNER JOIN 
    sys.columns C
    ON O.object_id = C.object_id 
LEFT JOIN 
    sys.types TY
    ON C.system_type_id = TY.system_type_id 
LEFT JOIN 
    sys.index_columns I
    ON C.object_id = I.object_id 
    AND C.column_id = I.column_id 
LEFT JOIN 
    sys.key_constraints KC
    ON C.object_id = KC.parent_object_id 
    AND KC.type = 'PK' 
    AND I.index_id = KC.unique_index_id 
;

 

※クエリの結果はあくまでサンプルの内容になります。

object_id column_name type index_column PK user_type_id max_length precision scale collation_name is_nullable is_ansi_padded is_rowguidcol is_identity is_computed is_filestream
1975 ID numeric TRUE TRUE 108 9 19 0 (NULL)​ FALSE FALSE FALSE FALSE FALSE FALSE
1975 コード varchar TRUE ​(NULL)​ 167 10 0 0 Japanese_CI_AS FALSE TRUE FALSE FALSE FALSE FALSE
1975 苗字 nvarchar ​(NULL)​ ​(NULL)​ 231 80 0 0 Japanese_CI_AS TRUE TRUE FALSE FALSE FALSE FALSE
1975 名前 nvarchar ​(NULL)​ ​(NULL)​ 231 80 0 0 Japanese_CI_AS FALSE TRUE FALSE FALSE FALSE FALSE
1975 メールアドレス varchar ​(NULL)​ ​(NULL)​ 167 255 0 0 Japanese_CI_AS TRUE TRUE FALSE FALSE FALSE FALSE
1975 最終ログイン日 datetime ​(NULL)​ ​(NULL)​ 61 8 23 3 (NULL)​ TRUE FALSE FALSE FALSE FALSE FALSE
1975 パスワード varchar ​(NULL)​ ​(NULL)​ 167 65 0 0 Japanese_CI_AS FALSE TRUE FALSE FALSE FALSE FALSE
1975 トークン varchar TRUE ​(NULL)​ 167 65 0 0 Japanese_CI_AS FALSE TRUE FALSE FALSE FALSE FALSE
1975 登録者 numeric ​(NULL)​ ​(NULL)​ 108 9 19 0 ​(NULL)​ TRUE FALSE FALSE FALSE FALSE FALSE
1975 登録日 datetime ​(NULL)​ ​(NULL)​ 61 8 23 3 ​(NULL)​ FALSE FALSE FALSE FALSE FALSE FALSE
1975 更新者 numeric ​(NULL)​ ​(NULL)​ 108 9 19 0 ​(NULL)​ TRUE FALSE FALSE FALSE FALSE FALSE
1975 更新日 datetime ​(NULL)​ ​(NULL)​ 61 8 23 3 ​(NULL)​ FALSE FALSE FALSE FALSE FALSE FALSE

 



投稿日:2019-09-09    更新日:2019-09-11

[スポンサーリンク]

関連記事
勉強した内容を緩くメモする|JBの技術メモ
勉強した内容を緩くメモする|JBの技術メモ
勉強した内容を緩くメモする|JBの技術メモ
勉強した内容を緩くメモする|JBの技術メモ
勉強した内容を緩くメモする|JBの技術メモ
勉強した内容を緩くメモする|JBの技術メモ
サイト内検索
プロフィール

プロフィール

[Name : じゃぶじゃぶ(@jbjb_2019)]
都内で社内SEをしているおじさん。
仕事で得られる知識だけでは限界を感じ、 WEBの勉強がてらITブログを開始。
サーバからWEBサイトまでフルスクラッチで開発しました。
現在は勉強のモチベーションを保つために活用中。
興味があることを雑記的に書いていきます。

[スポンサーリンク]

[スポンサードリンク]