sp_foreignkeys (Transact-SQL)

適用於:SQL Server

傳回參考連結伺服器資料表上主鍵的外鍵。

Transact-SQL 語法慣例

語法

  
sp_foreignkeys [ @table_server = ] 'table_server'   
     [ , [ @pktab_name = ] 'pktab_name' ]   
     [ , [ @pktab_schema = ] 'pktab_schema' ]   
     [ , [ @pktab_catalog = ] 'pktab_catalog' ]   
     [ , [ @fktab_name = ] 'fktab_name' ]   
     [ , [ @fktab_schema = ] 'fktab_schema' ]   
     [ , [ @fktab_catalog = ] 'fktab_catalog' ]  

引數

[ @table_server = ] 'table_server' 這是要傳回資料表資訊的連結伺服器名稱。 table_server為 sysname ,沒有預設值。

[ @pktab_name = ] 'pktab_name' 這是具有主鍵的資料表名稱。 pktab_name為 sysname ,預設值為 Null。

[ @pktab_schema = ] 'pktab_schema' 這是具有主鍵的架構名稱。 pktab_schema為 sysname ,預設值為 Null。 在 SQL Server 中,這包含擁有者名稱。

[ @pktab_catalog = ] 'pktab_catalog' 這是具有主鍵的目錄名稱。 pktab_catalog sysname ,預設值為 Null。 在 SQL Server 中,這包含資料庫名稱。

[ @fktab_name = ] 'fktab_name' 這是具有外鍵的資料表名稱。 fktab_name sysname ,預設值為 Null。

[ @fktab_schema = ] 'fktab_schema' 這是具有外鍵的架構名稱。 fktab_schema sysname ,預設值為 Null。

[ @fktab_catalog = ] 'fktab_catalog' 這是具有外鍵的目錄名稱。 fktab_catalog為 sysname ,預設值為 Null。

傳回碼值

結果集

各種 DBMS 產品支援資料表的三部分命名( 目錄 schema table ),在結果集中表示。

資料行名稱 資料類型 描述
PKTABLE_CAT sysname 主鍵所在的資料表目錄。
PKTABLE_SCHEM sysname 主鍵所在的資料表架構。
PKTABLE_NAME sysname 資料表的名稱(含主鍵)。 此欄位一律會傳回值。
PKCOLUMN_NAME sysname 傳回TABLE_NAME 之每 一個資料行的主鍵資料行或資料行名稱。 此欄位一律會傳回值。
FKTABLE_CAT sysname 外鍵所在的資料表目錄。
FKTABLE_SCHEM sysname 外鍵所在的資料表架構。
FKTABLE_NAME sysname 資料表的名稱(具有外鍵)。 此欄位一律會傳回值。
FKCOLUMN_NAME sysname 傳回TABLE_NAME之每個資料行的外鍵資料行名稱。 此欄位一律會傳回值。
KEY_SEQ smallint 多欄主鍵中資料行的序號。 此欄位一律會傳回值。
UPDATE_RULE smallint 當 SQL 作業為更新時,套用至外鍵的動作。 SQL Server 會針對這些資料行傳回 0、1 或 2:

0=CASCADE 變更為外鍵。

1=如果外鍵存在,則 NO ACTION 會變更。

2=SET_Null;將外鍵設定為 Null。
DELETE_RULE smallint 當 SQL 作業為刪除時,套用至外鍵的動作。 SQL Server 會針對這些資料行傳回 0、1 或 2:

0=CASCADE 變更為外鍵。

1=如果外鍵存在,則 NO ACTION 會變更。

2=SET_Null;將外鍵設定為 Null。
FK_NAME sysname 外鍵識別碼。 如果不適用於資料來源,則為 Null。 SQL Server 會傳回 FOREIGN KEY 條件約束名稱。
PK_NAME sysname 主鍵識別碼。 如果不適用於資料來源,則為 Null。 SQL Server 會傳回 PRIMARY KEY 條件約束名稱。
DEFERRABILITY smallint 指出條件約束檢查是否可延遲。

在結果集中,FK_NAME和PK_NAME資料行一律會傳回 Null。

備註

sp_foreignkeys 查詢對應至 table_server 之 OLE DB 提供者之 IDBSchemaRowset 介面FOREIGN_KEYS資料列集 table_name table_schema table_catalog 和資料 參數會傳遞至這個介面,以限制傳回的資料列。

權限

需要架構的 SELECT 許可權。

範例

下列範例會傳回連結伺服器上資料庫中資料表的 AdventureWorks2022 外鍵資訊 DepartmentSeattle1

EXEC sp_foreignkeys @table_server = N'Seattle1',   
   @pktab_name = N'Department',   
   @pktab_catalog = N'AdventureWorks2022';  

另請參閱

sp_catalogs (Transact-SQL)
sp_column_privileges (Transact-SQL)
sp_indexes (Transact-SQL)
sp_linkedservers (Transact-SQL)
sp_primarykeys (Transact-SQL)
sp_tables_ex (Transact-SQL)
sp_table_privileges (Transact-SQL)
系統預存程序 (Transact-SQL)