首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

使用 sp_pkeys 快速查詢 SQL Server 資料表的主鍵資訊

     編輯:關於SqlServer

在 SQL Server 中,若需快速確認某個資料表是否定義了主鍵,以及主鍵包含哪些欄位,系統預存程序 sp_pkeys 是最直接的工具。這個預存程序專門用於回傳指定資料表的主鍵條件約束資訊,避免了手動查詢系統目錄視圖的繁瑣步驟。

sp_pkeys 參數說明

sp_pkeys 接受三個輸入參數:

  • @table_name:要查詢的資料表名稱。若未使用萬用字元,此參數為必填。
  • @table_owner:資料表的擁有者(結構描述名稱),預設為 dbo。
  • @table_qualifier:資料表所在的資料庫名稱。需注意,此預存程序必須在該資料庫的內容下執行,否則可能找不到物件。

回傳欄位

執行成功後,將回傳下列資訊:

  • TABLE_QUALIFIER(資料庫名稱)
  • TABLE_OWNER(擁有者/結構描述)
  • TABLE_NAME(資料表名稱)
  • COLUMN_NAME(主鍵欄位名稱)
  • KEY_SEQ(欄位在主鍵中的順序)
  • PK_NAME(主鍵條件約束名稱)

實作範例

以下範例示範如何在 Northwind 資料庫中查詢 Orders 資料表的主鍵資訊:

USE Northwind;
GO
EXEC sp_pkeys 
    @table_name = N'Orders',
    @table_owner = N'dbo',
    @table_qualifier = N'Northwind';
GO

替代方案:查詢 INFORMATION_SCHEMA

若需更彈性的查詢(例如同時取得外鍵、唯一條件約束等),可直接查詢 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';

這種方式雖然程式碼較長,但能提供更完整的中繼資料,適合整合在自動化腳本或文件產生工具中。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved