【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
関連記事
-
【ODBC】Windows7でAccess2007とSQL Serverを接続する為のODBCの作成
前回、ODBC接続の為のサーバー側の設定を行いましたので、 今回はAccess2007側のWind
-
【SQL Server】エクセルをテーブルに取り込む方法
以前にManagement Studioを使ってSQLでエクセルを直接取り込む方法を書きましたが、今
-
【SQL Server】Management Studioを使ったトランザクションログファイルの圧縮
「ファイルが書き出せない」と問い合わせを受け、DBサーバーのマイコンピュータ確認したら、Dドライブ(
-
【SQL Server】Excel VBAのレコードセットを使ってテーブルの一括更新
前々回は読み取り専用でレコードセットへ取得し、結果をエクセルへ書き出し 前回はVBAから更新S
-
【SQL Server 2012】バッチ(コマンドプロンプト)でリストア
バッチ(コマンドプロンプト)を使って、SQL Server 2012のリストアしてみたいと思います。
-
【SQLServer2012】バックアップ/リストア方法 リストア編
SQL Server 2012のデータベースをManagement Studioを使用して、リストア
-
【SQL Server】Excel VBAでSELECT文を実行してレコードセットへ取得
前回は、テーブルのレコードをVBAで直接更新(Insert/update/delete) 今回
-
【SQL Server】Excel VBAでSQLを実行し、レコードを更新(追加、更新、削除)する
VBAでSQL Serverのテーブルに SQL(Insert、Update、Delete)を発行
-
【SQL Server 2012】バックアップ/リストア方法 バックアップ編
Management StudioでSQL Server 2012のデータベースバックアップファイル
-
【SQL Server】データベース作成日時(リストアした日付)を確認する方法
トラブルの調査をするとき、開発用の環境を作成して、調査するのですが… この環境っていつ作成した