Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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';