【SQL Server 2012】テーブル、カラム、主キー、NULL制約、データ型、長さ、INDEXの有無の一括表示
職場のシステムリプレースに伴い、データベースのテーブル(カラム)の一覧が必要になりました。
普通は設計書に記載してあることなんですが…うちの職場の設計書はメチャクチャなものでして(ノω・、) ウゥ・・・
ということで、テーブル、カラム、主キー、NULL制約、データ型、長さ、INDEXの有無をSQLで一覧を表示してみました。
USE 【調べたいデータベース名】;SELECT e.name AS ‘テーブル名’
,a.name AS ‘カラム名’
,case when d.name is not null
then ‘○’
else null
end as ‘主キー’
,case when a.is_nullable = 0
then ‘有’
else NULL
end as NULL制約
,b.name as ‘データ型’
,a.max_length as ‘長さ’
,case when c.index_column_id is not null
then ‘○’
else null
end as ‘INDEX’
from sys.columns as a LEFT OUTER JOIN sys.types as b
ON a.system_type_id = b.system_type_id
and b.schema_id = ‘4’LEFT OUTER JOIN sys.index_columns as c
ON a.object_id = c.object_id
and a.column_id = c.column_idLEFT OUTER JOIN sys.key_constraints as d
ON a.object_id = d.parent_object_id
and a.column_id = c.column_id
,sys.tables as e
where a.object_id = e.object_id
order by e.name,a.column_id,c.index_column_id
【調べたいデータベース名】の所にデータベース名を入れて、SQLを実行。
一括で表示することができました((´^ω^))ゥ,、ゥ,、
上の画像は、Management Studioで実行した結果です。
もちろん、SQL Server 2008でも使用できます。
このSQLの使い方の応用?としては、Where句に「and a.name = ‘【調べたいカラム名】’」とか指定すれば、どのテーブルに調べたいカラムがあるのか、見つけることができるかなぁ。
Adsense
関連記事
-
-
【SQL Server 2012】バッチ(コマンドプロンプト)でバックアップ
バッチ(コマンドプロンプト)を使って、SQL Server 2012のバックアップを取得します。
-
-
【コマンドプロンプト】完成版!cmdでSQLの結果を変数に取得
以前、 【コマンドプロンプト】cmdでSQLの結果を変数に取得する方法 を書きましたが、
-
-
【SQL Server 2012】Management Studioでサンプルデータベース(mdfファイル)をアタッチ
以前、Windows Server 2012にMicrosoftR SQL ServerR 2012
-
-
【SQL Server】Excel VBAでSELECT文を実行してレコードセットへ取得
前回は、テーブルのレコードをVBAで直接更新(Insert/update/delete) 今回
-
-
【SQL Server 2012】SQLでエクセル表示の実行エラーの対処法
SQLでエクセル表示を実行した時にエラーとなった場合の対処法。 実はSQLでエクセルファイルを表示
-
-
【Management Studio】テーブル単位のメモリ使用量の確認
1.Management Studioを起動し、メモリ使用量が確認したい対象サーバーへ接続 2.確
-
-
【レプリケーション】SQL Server 2012 Expressでレプリケーション
Windows Server 2012のSQL Server 2012 Expressを二台用意して
-
-
【SQL Server】Management Studioを使ったトランザクションログファイルの圧縮
「ファイルが書き出せない」と問い合わせを受け、DBサーバーのマイコンピュータ確認したら、Dドライブ(
-
-
【SQL Server】Management Studioでテーブルをデザインから変更するとエラーになる
変更の保存が許可されていません。行った変更には、次のテーブルを削除して再作成することが必要に
-
-
【Management Studio】データベースの定義を取得する方法
あくまでデータベース定義の取得です。 ※データベースのデータを取得する方法ではありません。

