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 を追加してください。