EXEC sp_pkeys 'my_table'
上面語法的執行結果如下:
TABLE_OWNER | TABLE_NAME | COLUMN_NAME | TABLE_QUALIFIER | KEY_SEQ | PK_NAME |
---|---|---|---|---|---|
dbo | my_table | orderNumber | db_name | 1 | constraintName |
dbo | my_table | productID | db_name | 2 | constraintName |
此語法會顯示目前 pk 的欄位有哪些
ALTER TABLE my_table
ADD CONSTRAINT constraintName -- constrain 約束條件的名字可以自己設定
PRIMARY KEY (orderNumber, productID); -- 增加你要當作 pk 的欄位名,可以多組欄位當 pk
以上語法讓你建立 table pk 約束條件*
不論你想
你都要先刪除原本的 pk constrain
ALTER TABLE my_table
DROP CONSTRAINT constraintName;
然後再執行上面的設定 pk 的流程
呼應前一篇 MSSQL index 整理,當你 table 設定 pk 後,可以執行以下檢查 table 索引
EXEC sp_helpindex 'my_table'
EXEC sp_helpindex 'my_table' 的結果
index_name | index_description | index_keys |
---|---|---|
constraintName | clustered, unique, primary key located on PRIMARY | orderNumber, productID |
可以發現除了 pk,SQL Server 也同時幫你建立好叢集索引,且因為 pk 的特性,也建立 unique 索引