sp_foreignkeys (Transact-SQL)
適用於:SQL Server
傳回參考連結伺服器資料表上主鍵的外鍵。
語法
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
外鍵資訊 Department
。 Seattle1
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)
意見反映
https://aka.ms/ContentUserFeedback。
即將推出:我們會在 2024 年淘汰 GitHub 問題,並以全新的意見反應系統取代並作為內容意見反應的渠道。 如需更多資訊,請參閱:提交及檢視以下的意見反映: