SQLServerでテーブルのプライマリキー(PK)をSQLで取得します。
SQLServerでテーブルのプライマリキー(PK)をSQLで取得する
SQLServerでテーブルのプライマリキー(PK)をSQLで取得します。
---------------------------------------
--テーブルを作成する
---------------------------------------
CREATE TABLE test_table
(
no INT NOT NULL
,name VARCHAR(20) DEFAULT NULL
,age INT DEFAULT 0
,CONSTRAINT [PK_test_tabe] PRIMARY KEY CLUSTERED
(
no ASC
)
)
---------------------------------------
--テーブルのプライマリキー(PK)を取得する
---------------------------------------
SELECT
tbls.name AS table_name
,key_const.name AS constraint_name
,idx_cols.key_ordinal AS key_ordinal
,cols.name AS col_name
FROM
sys.tables AS tbls
INNER JOIN sys.key_constraints AS key_const ON
tbls.object_id = key_const.parent_object_id AND key_const.type = 'PK'
AND tbls.name = 'test_table'
INNER JOIN sys.index_columns AS idx_cols ON
key_const.parent_object_id = idx_cols.object_id
AND key_const.unique_index_id = idx_cols.index_id
INNER JOIN sys.columns AS cols ON
idx_cols.object_id = cols.object_id
AND idx_cols.column_id = cols.column_id
---------------------------------------
--テーブルを削除する
---------------------------------------
DROP TABLE test_table
実行結果
| table_name | constraint_name | key_ordinal | col_name |
|---|---|---|---|
| test_table | PK_test_tabe | 1 | no |
です。

