返回引用主鍵的外鍵,這些主鍵在鏈接服務(wù)器中的表上。
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'
鏈接服務(wù)器的名稱,將為該服務(wù)器返回表信息。table_server 的數(shù)據(jù)類型為 sysname,無默認(rèn)值。
[@pktab_name =] 'pktab_name'
是帶有主鍵的表的名稱。pktab_name 的數(shù)據(jù)類型為 sysname,默認(rèn)值為 NULL。
[@pktab_schema =] 'pktab_schema'
是帶有主鍵的架構(gòu)名稱。pktab_schema 的數(shù)據(jù)類型為 sysname,默認(rèn)值為 NULL。在 Microsoft® SQL Server™ 中,該項參數(shù)包含所有者名稱。
[@pktab_catalog =] 'pktab_catalog'
是帶有主鍵的目錄名稱。pktab_catalog 的數(shù)據(jù)類型為 sysname,默認(rèn)值為 NULL。在 SQL Server 中,該項參數(shù)包含數(shù)據(jù)庫名稱。
[@fktab_name =] 'fktab_name'
是帶有外鍵的表的名稱。fktab_name 的數(shù)據(jù)類型為 sysname,默認(rèn)值為 NULL。
[@fktab_schema =] 'fktab_schema'
是帶有外鍵的架構(gòu)名稱。fktab_schema 的數(shù)據(jù)類型為 sysname,默認(rèn)值為 NULL。
[@fktab_catalog =] 'fktab_catalog'
是帶有外鍵的目錄名稱。fktab_catalog 的數(shù)據(jù)類型為 sysname,默認(rèn)值為 NULL。
無
多種 DBMS 產(chǎn)品支持表的三段命名方式 (catalog.schema.table),這在結(jié)果集中有所表現(xiàn)。
列名 | 數(shù)據(jù)類型 | 描述 |
---|---|---|
PKTABLE_CAT | sysname | 表的目錄,主鍵駐留在該表中。 |
PKTABLE_SCHEM | sysname | 表的架構(gòu),主鍵駐留在該表中。 |
PKTABLE_NAME | sysname | 表的名稱(該表帶有主鍵)。該字段始終返回值。 |
PKCOLUMN_NAME | sysname | 主鍵列的名稱,針對返回的 TABLE_NAME 的每個列。該字段始終返回值。 |
FKTABLE_CAT | sysname | 表的目錄,外鍵駐留在該表中。 |
FKTABLE_SCHEM | sysname | 表的架構(gòu),外鍵駐留在該表中。 |
FKTABLE_NAME | sysname | 表的名稱(該表帶有外鍵)。該字段始終返回值。 |
FKCOLUMN_NAME | sysname | 外鍵列的名稱,針對返回的 TABLE_NAME 的每個列。該字段始終返回值。 |
KEY_SEQ | smallint | 多列主鍵中列的序列號。該字段始終返回值。 |
UPDATE_RULE | smallint | 當(dāng) SQL 操作是更新時,應(yīng)用于外鍵的動作。SQL Server 為這些列返回 0 或 1。開放數(shù)據(jù)服務(wù)網(wǎng)關(guān)可返回值 0、1 或 2: 0= 對外鍵的 CASCADE 修改。 |
DELETE_RULE | smallint | 當(dāng) SQL 操作是刪除時,應(yīng)用于外鍵的動作。SQL Server 為這些列返回 0 或 1。開放數(shù)據(jù)服務(wù)網(wǎng)關(guān)可返回值 0、1 或 2: 0= 對外鍵的 CASCADE 修改。 |
FK_NAME | sysname | 外鍵標(biāo)識符。如果對數(shù)據(jù)源不可用,則其為 NULL。SQL Server 返回 FOREIGN KEY 約束名。 |
PK_NAME | sysname | 主鍵標(biāo)識符。如果對數(shù)據(jù)源不可用,則其為 NULL。SQL Server 返回 PRIMARY KEY 約束名。 |
DEFERRABILITY | smallint | 指明限制檢查是否為可延遲的。 |
在結(jié)果集中,F(xiàn)K_NAME 和 PK_NAME 列總是返回 NULL。
sp_foreignkeys 查詢 OLE DB 提供程序的 IDBSchemaRowset 接口的 FOREIGN_KEYS 行集,該提供程序與 table_server 相對應(yīng)。table_name、table_schema、table_catalog 和 column 參數(shù)傳遞到此接口,用以限制返回的行。
下面的示例返回有關(guān) Northwind 數(shù)據(jù)庫中 Customers 表的外鍵信息。
USE master
EXEC sp_foreignkeys @table_server = N'LONDON1',
@pktab_name = N'Customers',
@pktab_catalog = N'Northwind'
相關(guān)文章