Transact-SQLでテーブルのプライマリキーを調べる


Transact-SQLでテーブルのプライマリキーを調べるには、次のクエリを使用します。

SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE OBJECTPROPERTY(OBJECT_ID(CONSTRAINT_SCHEMA + '.' + CONSTRAINT_NAME), 'IsPrimaryKey') = 1
  AND TABLE_NAME = 'your_table_name';

上記のクエリでは、指定されたテーブル名に対して定義されているプライマリキーの列名を返します。プライマリキーが定義されていない場合は何も返されません。

なお、このクエリでは、INFORMATION_SCHEMA.KEY_COLUMN_USAGE テーブルから情報を取得しています。このテーブルには、すべての制約に関する情報が格納されています。このため、このクエリは、プライマリキー以外の制約に関する情報も取得することができます。プライマリキーだけを取得するには、条件に OBJECTPROPERTY(OBJECT_ID(CONSTRAINT_SCHEMA + '.' + CONSTRAINT_NAME), 'IsPrimaryKey') = 1 を追加してください。

いいなと思ったら応援しよう!