Udostępnij za pomocą


sp_foreignkeys (Transact-SQL)

Dotyczy:SQL Server

Zwraca klucze obce odwołujące się do kluczy głównych w tabeli na połączonym serwerze.

Transact-SQL konwencje składni

Składnia

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'

Nazwa połączonego serwera, dla którego zwraca się informacja o tabeli. @table_server to sysname, bez domyślnego ustawienia.

[ @pktab_name = ] N'pktab_name'

Nazwa tabeli z kluczem głównym. @pktab_name to nazwa systemu, z domyślnym .NULL

[ @pktab_schema = ] N'pktab_schema'

Nazwa schematu z kluczem głównym. @pktab_schema to nazwa systemu, z domyślnym .NULL W SQL Server ten parametr zawiera nazwę właściciela.

[ @pktab_catalog = ] N'pktab_catalog'

Nazwa katalogu z kluczem głównym. @pktab_catalog to nazwa systemu, z domyślnym obciążeniem NULL. W SQL Server ten parametr zawiera nazwę bazy danych.

[ @fktab_name = ] N'fktab_name'

Nazwa stołu z obcym kluczem. @fktab_name to nazwa sysname, z domyślnym .NULL

[ @fktab_schema = ] N'fktab_schema'

Nazwa schematu z obcym kluczem. @fktab_schema jest nazwą systemu z domyślnym .NULL

[ @fktab_catalog = ] N'fktab_catalog'

Nazwa katalogu z kluczem obcym. @fktab_catalog jest nazwą systemu z domyślnym .NULL

Zwracanie wartości kodu

Żaden.

Zestaw wyników

Różne produkty systemów zarządzania bazami danych (DBMS) obsługują trzyczęściowe nazewnictwo tabel (),<catalog>.<schema>.<table> które są reprezentowane w zbiorze wyników.

Nazwa kolumny Typ danych Description
PKTABLE_CAT sysname Katalog tabeli, w której znajduje się klucz główny.
PKTABLE_SCHEM sysname Schemat dla tabeli, w której znajduje się klucz główny.
PKTABLE_NAME sysname Nazwa tabeli (z kluczem głównym). To pole zawsze zwraca wartość.
PKCOLUMN_NAME sysname Nazwa głównej kolumny klucza lub kolumn, dla każdej kolumny zwróconej TABLE_NAME . To pole zawsze zwraca wartość.
FKTABLE_CAT sysname Katalog tabeli, w której znajduje się klucz obcy.
FKTABLE_SCHEM sysname Schemat dla tabeli, w której znajduje się klucz obcy.
FKTABLE_NAME sysname Nazwa stołu (z obcym). To pole zawsze zwraca wartość.
FKCOLUMN_NAME sysname Nazwa kolumn kluczy obcych dla każdej kolumny zwróconej TABLE_NAME . To pole zawsze zwraca wartość.
KEY_SEQ smallint Numer sekwencyjny kolumny w wielokolumnowym kluczu podstawowym. To pole zawsze zwraca wartość.
UPDATE_RULE smallint Działanie stosowane do klucza obcego, gdy operacja SQL jest aktualizowana. SQL Server zwraca 0, 1 lub 2 dla następujących kolumn:

0 = CASCADE zmiany tonacji obcej.
1 = NO ACTION zmienia się, jeśli obecny jest klucz obcy.
2 = SET_NULL; Ustaw klucz obcy na NULL.
DELETE_RULE smallint Działanie stosowane do klucza obcego, gdy operacja SQL jest usuwaniem. SQL Server zwraca 0, 1 lub 2 dla następujących kolumn:

0 = CASCADE zmiany tonacji obcej.
1 = NO ACTION zmienia się, jeśli obecny jest klucz obcy.
2 = SET_NULL; Ustaw klucz obcy na NULL.
FK_NAME sysname Identyfikator klucza obcego. Jeśli nie dotyczy NULL źródła danych. SQL Server zwraca nazwę ograniczenia FOREIGN KEY .
PK_NAME sysname Identyfikator klucza głównego. Jeśli nie dotyczy NULL źródła danych. SQL Server zwraca nazwę ograniczenia PRIMARY KEY .
DEFERRABILITY smallint Wskazuje, czy sprawdzanie ograniczeń jest odroczone.

W zbiorze wyników kolumny FK_NAME i PK_NAME zawsze zwracają NULL.

Uwagi

sp_foreignkeys zapytuje FOREIGN_KEYS zestaw IDBSchemaRowset wierszy interfejsu dostawcy OLE DB, który odpowiada @table_server. Parametry @table_name, @table_schema, @table_catalog i @column są przekazywane do tego interfejsu, aby ograniczyć liczbę zwracanych wierszy.

Permissions

Wymaga SELECT zgody na schemat.

Przykłady

Poniższy przykład zwraca informacje o kluczu AdventureWorks2025 obcym dla tabeli Department w bazie danych na połączonym serwerze, Seattle1.

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