【SQL Server】主キーの一覧を取得する

主キーの一覧を取得
できます!

システムテーブル「sys.key_constraints」により
取得できます!

「sys.tables」および「sys.schema」と紐づけることで
 ・主キーを設定しているスキーマ名テーブル名
も合わせて取得できます!

主キーを設定しているスキーマ名とテーブル名
主キーを設定しているスキーマ名とテーブル名
PR

SQL

ここでは当該列に対し別名を付けます。
・主キーの名前
・主キーを設定しているスキーマ名とテーブル名

また好みでソートします。

SELECT
	skc.name AS '主キーの名前',
	s.name + '.' + t.name AS '主キーを設定しているスキーマ名とテーブル名'
FROM
	sys.key_constraints skc
INNER JOIN sys.tables t
	ON t.object_id = skc.parent_object_id
INNER JOIN sys.schemas s
	ON s.schema_id = t.schema_id
WHERE
	skc.type = 'PK' --主キーを指定
ORDER BY
	主キーの名前

「type (オブジェクトの種類)」に「PK(PRIMARY KEY 制約)」を指定します(11行目)。

PR

実行結果

主キーの一覧を取得できました。

実行結果
実行結果
PR

参考

上記で使用した以下の詳細は、公式サイトをご確認ください。

●テーブル「sys.key_constraints」

主キーや外部キー制約に関する情報を管理しているテーブルです。
システムテーブル「sys.objects」を継承しています。
※sys.objectsが持つ列を持っています。

タイトルとURLをコピーしました