Sdílet prostřednictvím


sp_foreignkeys (Transact-SQL)

platí pro:SQL Server

Vrací cizí klíče, které odkazují na primární klíče v tabulce na propojeném serveru.

Transact-SQL konvence syntaxe

Syntaxe

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'

Název propojeného serveru, pro který se vracejí informace o tabulce. @table_server je sysname, bez výchozího nastavení.

[ @pktab_name = ] N'pktab_name'

Název tabulky s primárním klíčem. @pktab_name je sysname, s výchozím nastavením NULL.

[ @pktab_schema = ] N'pktab_schema'

Název schématu s primárním klíčem. @pktab_schema je sysname s výchozím nastavením NULL. V SQL Serveru tento parametr obsahuje jméno vlastníka.

[ @pktab_catalog = ] N'pktab_catalog'

Název katalogu s primárním klíčem. @pktab_catalog je sysname s výchozím nastavením NULL. V SQL Serveru tento parametr obsahuje název databáze.

[ @fktab_name = ] N'fktab_name'

Název stolu s cizím klíčem. @fktab_name je sysname s výchozím nastavením NULL.

[ @fktab_schema = ] N'fktab_schema'

Název schématu s cizím klíčem. @fktab_schema je sysname s výchozím nastavením NULL.

[ @fktab_catalog = ] N'fktab_catalog'

Název katalogu s cizím klíčem. @fktab_catalog je sysname s výchozím nastavením NULL.

Hodnoty návratového kódu

Žádné.

Sada výsledků

Různé produkty databázových systémů (DBMS) podporují třífázové pojmenování tabulek (<catalog>.<schema>.<table>), které jsou reprezentovány ve výsledné sadě.

Název sloupce Datový typ Description
PKTABLE_CAT sysname Katalog tabulky, ve které se nachází primární klíč.
PKTABLE_SCHEM sysname Schéma pro tabulku, ve které se nachází primární klíč.
PKTABLE_NAME sysname Název tabulky (s primárním klíčem). Toto pole vždy vrací hodnotu.
PKCOLUMN_NAME sysname Název sloupce nebo sloupců primárního klíče pro každý sloupec vráceného klíče TABLE_NAME . Toto pole vždy vrací hodnotu.
FKTABLE_CAT sysname Katalog tabulky, ve které se nachází cizí klíč.
FKTABLE_SCHEM sysname Schéma pro tabulku, ve které se nachází cizí klíč.
FKTABLE_NAME sysname Název tabulky (s cizím klíčem). Toto pole vždy vrací hodnotu.
FKCOLUMN_NAME sysname Název sloupců cizích klíčů pro každý sloupec vráceného klíče TABLE_NAME . Toto pole vždy vrací hodnotu.
KEY_SEQ smallint Pořadové číslo sloupce v primárním klíči s více sloupci. Toto pole vždy vrací hodnotu.
UPDATE_RULE smallint Akce aplikovaná na cizí klíč při aktualizaci SQL operace. SQL Server vrací 0, 1 nebo 2 pro tyto sloupce:

0 = CASCADE Změny cizího tónu.
1 = NO ACTION změní, pokud je přítomen cizí klíč.
2 = SET_NULL; Nastavte cizí klíč na NULL.
DELETE_RULE smallint Akce aplikovaná na cizí klíč, když je SQL operace smazáním. SQL Server vrací 0, 1 nebo 2 pro tyto sloupce:

0 = CASCADE Změny cizího tónu.
1 = NO ACTION změní, pokud je přítomen cizí klíč.
2 = SET_NULL; Nastavte cizí klíč na NULL.
FK_NAME sysname Identifikátor cizího klíče. Pokud ne, je NULL to relevantní pro datový zdroj. SQL Server vrací FOREIGN KEY název omezení.
PK_NAME sysname Identifikátor primárního klíče. Pokud ne, je NULL to relevantní pro datový zdroj. SQL Server vrací PRIMARY KEY název omezení.
DEFERRABILITY smallint Označuje, zda je kontrola omezení odkladatelná.

Ve výsledné množině FK_NAME sloupce a PK_NAME vždy vracejí NULL.

Poznámky

sp_foreignkeys dotazuje FOREIGN_KEYS řádkovou sadu IDBSchemaRowset rozhraní poskytovatele OLE DB, která odpovídá @table_server. Parametry @table_name, @table_schema, @table_catalog a @column jsou předávány tomuto rozhraní, aby omezily vrácené řádky.

Povolení

Vyžaduje SELECT povolení ke schématu.

Examples

Následující příklad vrací informace o cizím klíči k tabulce Department v AdventureWorks2025 databázi na propojeném serveru, Seattle1.

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