Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: SQL Server
Gibt die Fremdschlüssel zurück, die auf Primärschlüssel in der Tabelle auf dem Verbindungsserver verweisen.
Transact-SQL-Syntaxkonventionen
Syntax
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' ]
[ ; ]
Argumente
[ @table_server = ] N'table_server'
Der Name des verknüpften Servers, für den Tabelleninformationen zurückgegeben werden sollen. @table_server ist "sysname" ohne Standard.
[ @pktab_name = ] N'pktab_name'
Der Name der Tabelle mit einem Primärschlüssel. @pktab_name ist "sysname" mit einem Standardwert von NULL
.
[ @pktab_schema = ] N'pktab_schema'
Der Name des Schemas mit einem Primärschlüssel. @pktab_schema ist "sysname" mit dem Standardwert "NULL
. In SQL Server enthält dieser Parameter den Besitzernamen.
[ @pktab_catalog = ] N'pktab_catalog'
Der Name des Katalogs mit einem Primärschlüssel. @pktab_catalog ist "sysname" mit der Standardeinstellung "NULL
. In SQL Server enthält dieser Parameter den Datenbanknamen.
[ @fktab_name = ] N'fktab_name'
Der Name der Tabelle mit einem Fremdschlüssel. @fktab_name ist "sysname" mit einem Standardwert von NULL
.
[ @fktab_schema = ] N'fktab_schema'
Der Name des Schemas mit einem Fremdschlüssel. @fktab_schema ist "sysname" mit einem Standardwert von NULL
.
[ @fktab_catalog = ] N'fktab_catalog'
Der Name des Katalogs mit einem Fremdschlüssel.@fktab_catalog ist "sysname" mit einem Standardwert von NULL
.
Rückgabecodewerte
Keine.
Resultset
Verschiedene DbMS-Produkte (Database Management System) unterstützen die dreiteilige Benennung für Tabellen (<catalog>.<schema>.<table>
), die im Resultset dargestellt werden.
Spaltenname | Datentyp | Beschreibung |
---|---|---|
PKTABLE_CAT |
sysname | Katalog für die Tabelle, in der sich der Primärschlüssel befindet |
PKTABLE_SCHEM |
sysname | Schema für die Tabelle, in der sich der Primärschlüssel befindet |
PKTABLE_NAME |
sysname | Name der Tabelle (mit dem Primärschlüssel). Dieses Feld gibt immer einen Wert zurück. |
PKCOLUMN_NAME |
sysname | Der Name der Primärschlüsselspalte oder -spalten für jede Spalte der TABLE_NAME zurückgegebenen Spalte. Dieses Feld gibt immer einen Wert zurück. |
FKTABLE_CAT |
sysname | Katalog für die Tabelle, in der sich der Fremdschlüssel befindet |
FKTABLE_SCHEM |
sysname | Schema für die Tabelle, in der sich der Fremdschlüssel befindet |
FKTABLE_NAME |
sysname | Der Name der Tabelle (mit einem Fremdschlüssel). Dieses Feld gibt immer einen Wert zurück. |
FKCOLUMN_NAME |
sysname | Name der Fremdschlüsselspalten für jede Spalte der TABLE_NAME zurückgegebenen. Dieses Feld gibt immer einen Wert zurück. |
KEY_SEQ |
smallint | Die Sequenznummer der Spalte bei einem Primärschlüssel, der durch mehrere Spalten definiert wird. Dieses Feld gibt immer einen Wert zurück. |
UPDATE_RULE |
smallint | Die Aktion, die für den Fremdschlüssel ausgeführt wird, wenn es sich bei dem SQL-Vorgang um ein Update handelt. SQL Server gibt 0, 1 oder 2 für diese Spalten zurück:0 = CASCADE Änderungen am Fremdschlüssel.1 = NO ACTION ändert sich, wenn Fremdschlüssel vorhanden ist.2 = SET_NULL ; Fremdschlüssel auf NULL . |
DELETE_RULE |
smallint | Die Aktion, die für den Fremdschlüssel ausgeführt wird, wenn es sich bei dem SQL-Vorgang um eine Löschung handelt. SQL Server gibt 0, 1 oder 2 für diese Spalten zurück:0 = CASCADE Änderungen am Fremdschlüssel.1 = NO ACTION ändert sich, wenn Fremdschlüssel vorhanden ist.2 = SET_NULL ; Fremdschlüssel auf NULL . |
FK_NAME |
sysname | Der Fremdschlüsselbezeichner. Dies gilt NULL nicht für die Datenquelle. SQL Server gibt den Einschränkungsnamen FOREIGN KEY zurück. |
PK_NAME |
sysname | Der Primärschlüsselbezeichner. Dies gilt NULL nicht für die Datenquelle. SQL Server gibt den Einschränkungsnamen PRIMARY KEY zurück. |
DEFERRABILITY |
smallint | Gibt an, ob die Einschränkungsüberprüfung verzögert werden kann. |
Im Resultset geben die Spalten und PK_NAME
die FK_NAME
Spalten immer zurückNULL
.
Hinweise
sp_foreignkeys
fragt das FOREIGN_KEYS Rowset der IDBSchemaRowset
Schnittstelle des OLE DB-Anbieters ab, der @table_server entspricht. Die Parameter @table_name, @table_schema, @table_catalog und @column werden an diese Schnittstelle übergeben, um die zurückgegebenen Zeilen einzuschränken.
Berechtigungen
Erfordert die SELECT
-Berechtigung im Schema.
Beispiele
Das folgende Beispiel gibt Fremdschlüsselinformationen zur Department
-Tabelle in der AdventureWorks2022
-Datenbank auf dem Verbindungsserver Seattle1
zurück.
EXEC sp_foreignkeys @table_server = N'Seattle1',
@pktab_name = N'Department',
@pktab_catalog = N'AdventureWorks2022';