sp_primarykeys (Transact-SQL)
適用於:SQL Server
針對指定的遠端數據表,傳回主鍵數據行,每個索引鍵數據行一個數據列。
語法
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_schema、table_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)