sp_pkeys (Transact-SQL)
適用於:Microsoft Fabric 中的 SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW) 倉儲
傳回目前環境中單一數據表的主鍵資訊。
Syntax
SQL Server、Azure SQL 資料庫、Azure Synapse Analytics、Analytics Platform System (PDW) 的語法。
sp_pkeys
[ @table_name = ] N'table_name'
[ , [ @table_owner = ] N'table_owner' ]
[ , [ @table_qualifier = ] N'table_qualifier' ]
[ ; ]
引數
[ @table_name = ] N'table_name'
指定要傳回信息的數據表。 @table_name為 sysname,沒有預設值。 不支援通配符模式比對。
[ @table_owner = ] N'table_owner'
指定指定數據表的資料表擁有者。 @table_owner為 sysname 預設值為 NULL
。 不支援通配符模式比對。 如果未 指定@table_owner ,則會套用基礎資料庫管理系統 (DBMS) 的預設數據表可見性規則。
在 SQL Server 中,如果目前用戶擁有具有指定名稱的數據表,則會傳回該數據表的數據行。 如果未指定@table_owner,而且目前用戶沒有擁有具有指定@table_name的數據表,則此程式會尋找具有資料庫擁有者所擁有之指定@table_name的數據表。 如果存在,則會傳回該數據表的數據行。
[ @table_qualifier = ] N'table_qualifier'
數據表限定符。 @table_qualifier為 sysname,預設值為 NULL
。 各種 DBMS 產品支援數據表的三部分命名(<qualifier>.<owner>.<name>
)。 在 SQL Server 中,此資料行代表資料庫名稱。 在某些產品中,它代表數據表之資料庫環境的伺服器名稱。
傳回碼值
無。
結果集
資料行名稱 | 資料類型 | 描述 |
---|---|---|
TABLE_QUALIFIER |
sysname | 數據表限定符的名稱。 這個欄位可以是 NULL 。 |
TABLE_OWNER |
sysname | 數據表擁有者的名稱。 此欄位一律會傳回值。 |
TABLE_NAME |
sysname | 資料表的名稱。 在 SQL Server 中,此數據行代表 sysobjects 數據表中列出的數據表名稱。 此欄位一律會傳回值。 |
COLUMN_NAME |
sysname | 傳回之每個數據行的數據 TABLE_NAME 行名稱。 在 SQL Server 中,此數據行代表數據表中 sys.columns 所列的數據行名稱。 此欄位一律會傳回值。 |
KEY_SEQ |
smallint | 多欄主鍵中數據行的序號。 |
PK_NAME |
sysname | 主金鑰識別碼。 如果不適用於資料來源,則傳 NULL 回 。 |
備註
sp_pkeys
會傳回以 PRIMARY KEY
條件約束明確定義之數據行的相關信息。 因為並非所有系統都支持明確命名的主鍵,因此網關實作器會決定構成主鍵的內容。 主鍵一詞是指數據表的邏輯主鍵。 每個列為邏輯主鍵的索引鍵,都預期其上會定義唯一索引。 這個唯一索引也會在 中 sp_statistics
傳回。
預 sp_pkeys
存程式相當於 SQLPrimaryKeys
ODBC 中的 。 結果會依TABLE_QUALIFIER
、、 TABLE_OWNER
TABLE_NAME
和 KEY_SEQ
排序。
權限
SELECT
需要架構的許可權。
範例
本文 Transact-SQL 程式碼範例使用 AdventureWorks2022
或 AdventureWorksDW2022
範例資料庫,從 Microsoft SQL Server Samples 和 Community Projects (Microsoft SQL Server 範例和社群專案)首頁即可下載。
下列範例會擷 HumanResources.Department
取資料庫中數據表 AdventureWorks2022
的主鍵。
USE AdventureWorks2022;
GO
EXEC sp_pkeys @table_name = N'Department',
@table_owner = N'HumanResources';
範例:Azure Synapse Analytics 和 Analytics Platform System (PDW)
下列範例會擷 DimAccount
取資料庫中數據表 AdventureWorksPDW2012
的主鍵。 它會傳回零個數據列,指出數據表沒有主鍵。
-- Uses AdventureWorksPDW
EXEC sp_pkeys @table_name = N'DimAccount';