在 SQL Server 中,若需快速確認某個資料表是否定義了主鍵,以及主鍵包含哪些欄位,系統預存程序 sp_pkeys 是最直接的工具。這個預存程序專門用於回傳指定資料表的主鍵條件約束資訊,避免了手動查詢系統目錄視圖的繁瑣步驟。
sp_pkeys 接受三個輸入參數:
dbo。執行成功後,將回傳下列資訊:
以下範例示範如何在 Northwind 資料庫中查詢 Orders 資料表的主鍵資訊:
USE Northwind;
GO
EXEC sp_pkeys
@table_name = N'Orders',
@table_owner = N'dbo',
@table_qualifier = N'Northwind';
GO
若需更彈性的查詢(例如同時取得外鍵、唯一條件約束等),可直接查詢 INFORMATION_SCHEMA 視圖:
SELECT
TC.CONSTRAINT_CATALOG,
TC.CONSTRAINT_SCHEMA,
TC.TABLE_NAME,
KCU.COLUMN_NAME,
KCU.ORDINAL_POSITION,
KCU.CONSTRAINT_NAME
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS TC
JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE KCU
ON TC.TABLE_NAME = KCU.TABLE_NAME
AND TC.CONSTRAINT_NAME = KCU.CONSTRAINT_NAME
WHERE TC.TABLE_NAME = N'Orders'
AND TC.CONSTRAINT_TYPE = N'PRIMARY KEY';
這種方式雖然程式碼較長,但能提供更完整的中繼資料,適合整合在自動化腳本或文件產生工具中。