分享方式:


sp_primarykeys (Transact-SQL)

適用於:SQL Server

針對指定的遠端數據表,傳回主鍵數據行,每個索引鍵數據行一個數據列。

Transact-SQL 語法慣例

語法

sp_primarykeys
    [ @table_server = ] N'table_server'
    [ , [ @table_name = ] N'table_name' ]
    [ , [ @table_schema = ] N'table_schema' ]
    [ , [ @table_catalog = ] N'table_catalog' ]
[ ; ]

引數

[ @table_server = ] N'table_server'

要從中傳回主鍵資訊的連結伺服器名稱。 @table_server為 sysname,沒有預設值。

[ @table_name = ] N'table_name'

要提供主鍵信息的數據表名稱。 @table_name為 sysname 預設值為 NULL

[ @table_schema = ] N'table_schema'

數據表架構。 @table_schema為 sysname,預設值為 NULL。 在 SQL Server 環境中,此值會對應至數據表擁有者。

[ @table_catalog = ] N'table_catalog'

指定 之@table_name 所在的目錄名稱。 @table_catalog為 sysname,預設值為 NULL。 在 SQL Server 環境中,此值會對應至資料庫名稱。

傳回碼值

無。

結果集

資料行名稱 資料類型 描述
TABLE_CAT sysname 數據表目錄。
TABLE_SCHEM sysname 數據表架構。
TABLE_NAME sysname 資料表的名稱。
COLUMN_NAME sysname 資料行的名稱。
KEY_SEQ int 多欄主鍵中數據行的序號。
PK_NAME sysname 主金鑰識別碼。 如果不適用於資料來源,則傳 NULL 回 。

備註

sp_primarykeys會藉由查詢PRIMARY_KEYS對應至@table_server之 OLE DB 提供者介面的數據列集IDBSchemaRowset來執行。 參數會傳遞至這個介面,以限制傳回的數據列。

sp_primarykeys 如果指定的連結伺服器的 OLE DB 提供者不支援 PRIMARY_KEYS 介面的數據 IDBSchemaRowset 列集,則傳回空的結果集。

權限

SELECT需要架構的許可權。

範例

下列範例會從 LONDON1 伺服器 HumanResources.JobCandidate 傳回資料庫中數據表 AdventureWorks2022 的主鍵數據行。

EXEC sp_primarykeys @table_server = N'LONDON1',
    @table_name = N'JobCandidate',
    @table_catalog = N'AdventureWorks2022',
    @table_schema = N'HumanResources';