Megosztás a következőn keresztül:


sp_foreignkeys (Transact-SQL)

A következőkre vonatkozik:SQL Server

Visszaadja azokat az idegen kulcsokat, amelyek a táblán lévő elsődleges kulcsokra hivatkoznak a kapcsolt szerveren.

Transact-SQL szintaxis konvenciók

Szemantika

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

Arguments

[ @table_server = ] N'table_server'

A kapcsolt szerver neve, amelyhez a táblainformációt vissza kell küldeni. @table_servera sysname, alapértelmezett nélkül.

[ @pktab_name = ] N'pktab_name'

Az asztal neve elsődleges kulcscal. @pktab_name a sysname, alapértelmezett értéke NULL.

[ @pktab_schema = ] N'pktab_schema'

A séma neve elsődleges kulcscal. @pktab_schemaa sysname, alapértelmezettként NULL. Az SQL Serverben ez a paraméter tartalmazza a tulajdonos nevét.

[ @pktab_catalog = ] N'pktab_catalog'

A katalógus neve egy elsődleges kulcscal. @pktab_cataloga sysname, alapértelmezettként NULL. Az SQL Serverben ez a paraméter tartalmazza az adatbázis nevét.

[ @fktab_name = ] N'fktab_name'

Az asztal neve, amelynek van egy idegen kulcsa. @fktab_namea sysname, alapértelmezettként NULL.

[ @fktab_schema = ] N'fktab_schema'

A séma neve idegen kulcscal. @fktab_schema a sysname, alapértelmezettként NULL.

[ @fktab_catalog = ] N'fktab_catalog'

A katalógus neve idegen kulcscal. @fktab_catalog a sysname, alapértelmezettként NULL.

Kódértékek visszaadása

Nincs.

Eredményhalmaz

Különböző adatbázis-kezelő rendszerek (DBMS) termékek háromrészes elnevezést támogatnak a táblák (<catalog>.<schema>.<table>), amelyek az eredményhalmazban jelennek meg.

Oszlop név Adattípus Description
PKTABLE_CAT sysname Katalógus arra a táblázatra, amelyben a fő kulcs található.
PKTABLE_SCHEM sysname A táblázat sémája, amelyben a fő kulcs található.
PKTABLE_NAME sysname A tábla neve (a fő kulvával). Ez a mező mindig értéket ad vissza.
PKCOLUMN_NAME sysname A visszatért oszlop TABLE_NAME elsődleges kulcsoszlopának vagy oszlopainak neve. Ez a mező mindig értéket ad vissza.
FKTABLE_CAT sysname Katalógus a táblázathoz, amelyben az idegen kulcs található.
FKTABLE_SCHEM sysname A táblázat sémája, amelyben a külföldi kulcs található.
FKTABLE_NAME sysname A táblázat neve (idegen kulcscal). Ez a mező mindig értéket ad vissza.
FKCOLUMN_NAME sysname A külföldi kulcsoszlopok neve, minden visszatért TABLE_NAME oszlophoz. Ez a mező mindig értéket ad vissza.
KEY_SEQ smallint Az oszlop sorszáma egy többoszlopos elsődleges kulcsban. Ez a mező mindig értéket ad vissza.
UPDATE_RULE smallint Művelet az idegen kulcsra alkalmazva, amikor az SQL művelet frissítés. Az SQL Server 0, 1 vagy 2 értéket ad vissza ezekhez az oszlopokhoz:

0 = CASCADE Átalakulás idegen hangnemre.
1 = NO ACTION változik, ha idegen kulcs van.
2 = SET_NULL; Állítsd be az idegen kulcsot .NULL
DELETE_RULE smallint Művelet az idegen kulcsra, amikor az SQL művelet törlés. Az SQL Server 0, 1 vagy 2 értéket ad vissza ezekhez az oszlopokhoz:

0 = CASCADE Átalakulás idegen hangnemre.
1 = NO ACTION változik, ha idegen kulcs van.
2 = SET_NULL; Állítsd be az idegen kulcsot .NULL
FK_NAME sysname Külföldi kulcsazonosító. NULL Ha nem alkalmazható az adatforrásra. Az SQL Server adja vissza a FOREIGN KEY korlátozás nevet.
PK_NAME sysname Elsődleges kulcsazonosító. NULL Ha nem alkalmazható az adatforrásra. Az SQL Server adja vissza a PRIMARY KEY korlátozás nevet.
DEFERRABILITY smallint Jelzi, hogy a korlátozások ellenőrzése halasztható-e.

Az eredményhalmazban a FK_NAME és PK_NAME oszlopok mindig visszaadják NULL.

Megjegyzések

sp_foreignkeys lekérdezi az OLE DB szolgáltató interfészének FOREIGN_KEYS sorhalmazát IDBSchemaRowset , amely megfelel a @table_server-nek. Az @table_name, @table_schema, @table_catalog és @column paramétereket erre az interfészre továbbítják, hogy korlátozzák a visszaküldött sorokat.

Permissions

Engedély SELECT szükséges a sémához.

Példák

A következő példa a AdventureWorks2025 kapcsolt szerveren Seattle1található adatbázisban lévő tábláról származó idegen kulcsinformációkat Department adja.

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