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.
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 = ] 'table_server'
[ , [ @pktab_name = ] 'pktab_name' ]
[ , [ @pktab_schema = ] 'pktab_schema' ]
[ , [ @pktab_catalog = ] 'pktab_catalog' ]
[ , [ @fktab_name = ] 'fktab_name' ]
[ , [ @fktab_schema = ] 'fktab_schema' ]
[ , [ @fktab_catalog = ] 'fktab_catalog' ]
Argumente
[ @table_server = ] 'table_server'
Der Name des Verbindungsservers, für den Tabelleninformationen zurückgegeben werden sollen. table_server ist vom Datentyp sysname und hat keinen Standardwert.[ @pktab_name = ] 'pktab_name'
Der Name der Tabelle mit einem Primärschlüssel. pktab_name ist vom Datentyp sysname. Der Standardwert ist NULL.[ @pktab_schema = ] 'pktab_schema'
Der Name des Schemas mit einem Primärschlüssel. pktab_schemaist vom Datentyp sysname. Der Standardwert ist NULL. In SQL Server enthält dies den Namen des Besitzers.[ @pktab_catalog = ] 'pktab_catalog'
Der Name des Katalogs mit einem Primärschlüssel. pktab_catalogist vom Datentyp sysname. Der Standardwert ist NULL. In SQL Server enthält dies den Namen der Datenbank.[ @fktab_name = ] 'fktab_name'
Der Name der Tabelle mit einem Fremdschlüssel. fktab_nameist vom Datentyp sysname. Der Standardwert ist NULL.[ @fktab_schema = ] 'fktab_schema'
Der Name des Schemas mit einem Fremdschlüssel. fktab_schemaist vom Datentyp sysname. Der Standardwert ist NULL.[ @fktab_catalog = ] 'fktab_catalog'
Der Name des Katalogs mit einem Fremdschlüssel. fktab_catalogist vom Datentyp sysname. Der Standardwert ist NULL.
Rückgabecodewerte
Keine
Resultsets
Verschiedene DBMS-Produkte unterstützen eine dreiteilige Namensgebung für Tabellen (catalog**.schema.**table). Dies wird im Resultset dargestellt.
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(n) für jede Spalte des zurückgegebenen TABLE_NAME-Werts. 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 |
Der Name der Fremdschlüsselspalten für jede Spalte des zurückgegebenen TABLE_NAME-Werts. 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; kaskadierende Änderungen am Fremdschlüssel. 1=NO ACTION; keine Änderungen, wenn der Fremdschlüssel vorhanden ist. 2=SET_NULL; Fremdschlüssel auf NULL festlegen. |
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; kaskadierende Änderungen am Fremdschlüssel. 1=NO ACTION; keine Änderungen, wenn der Fremdschlüssel vorhanden ist. 2=SET_NULL; Fremdschlüssel auf NULL festlegen. |
FK_NAME |
sysname |
Der Fremdschlüsselbezeichner. Ist NULL, wenn er auf die Datenquelle nicht anwendbar ist. SQL Server gibt den Namen der FOREIGN KEY-Einschränkung zurück. |
PK_NAME |
sysname |
Der Primärschlüsselbezeichner. Ist NULL, wenn er auf die Datenquelle nicht anwendbar ist. SQL Server gibt den Namen der PRIMARY KEY-Einschränkung zurück. |
DEFERRABILITY |
smallint |
Gibt an, ob die Einschränkungsüberprüfung verzögert werden kann. |
Im Resultset geben die Spalten FK_NAME und PK_NAME immer NULL zurück.
Hinweise
sp_foreignkeys führt eine Abfrage des FOREIGN_KEYS-Rowsets für die IDBSchemaRowset-Schnittstelle des OLE DB-Anbieters durch, der table_server entspricht. Die Parameter table_name, table_schema, table_catalog und column werden an diese Schnittstelle übergeben, um die zurückgegebenen Zeilen zu beschränken.
Berechtigungen
Erfordert SELECT-Berechtigung für das Schema.
Beispiele
Das folgende Beispiel gibt Fremdschlüsselinformationen zur Department-Tabelle in der AdventureWorks2012 -Datenbank auf dem Verbindungsserver Seattle1 zurück.
EXEC sp_foreignkeys @table_server = N'Seattle1',
@pktab_name = N'Department',
@pktab_catalog = N'AdventureWorks2012';
Siehe auch
Verweis
sp_column_privileges (Transact-SQL)
sp_linkedservers (Transact-SQL)