sp_pkeys (Transact-SQL)

適用於:Microsoft Fabric 中的 SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW) 倉儲

傳回目前環境中單一數據表的主鍵資訊。

Transact-SQL 語法慣例

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_OWNERTABLE_NAMEKEY_SEQ排序。

權限

SELECT需要架構的許可權。

範例

本文 Transact-SQL 程式碼範例使用 AdventureWorks2022AdventureWorksDW2022 範例資料庫,從 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';