sp_primarykeys (Transact-SQL)

適用於:SQL Server

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

Transact-SQL 語法慣例

語法

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

引數

[ @table_server = ] 'table_server'_ 這是要從中傳回主鍵信息的連結伺服器名稱。 table_server為 sysname,沒有預設值。

[ @table_name = ] 'table_name' 這是提供主鍵信息的數據表名稱。 table_name為 sysname,預設值為 NULL。

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

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

傳回碼值

結果集

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

備註

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

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

權限

需要架構的 SELECT 許可權。

範例

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

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

另請參閱

分散式查詢預存程式 (Transact-SQL)
sp_catalogs (Transact-SQL)
sp_column_privileges (Transact-SQL)
sp_foreignkeys (Transact-SQL)
sp_indexes (Transact-SQL)
sp_linkedservers (Transact-SQL)
sp_tables_ex (Transact-SQL)
sp_table_privileges (Transact-SQL)
系統預存程序 (Transact-SQL)