SQLServerでテーブルのプライマリキー(PK)を取得する(SQL編)

プログラミング SQL Server

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

です。

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