sp_foreignkeys (Transact-SQL)
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 = ] '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 sysname, ohne Standardwert.
[ @pktab_name = ] 'pktab_name'
Der Name der Tabelle mit einem Primärschlüssel. pktab_name ist sysname mit dem Standardwert NULL.
[ @pktab_schema = ] 'pktab_schema'
Der Name des Schemas mit einem Primärschlüssel. pktab_schemaist sysname mit dem Standardwert NULL. In SQL Server enthält dies den Besitzernamen.
[ @pktab_catalog = ] 'pktab_catalog'
Der Name des Katalogs mit einem Primärschlüssel. pktab_catalogist sysname mit dem Standardwert NULL. In SQL Server enthält dies den Datenbanknamen.
[ @fktab_name = ] 'fktab_name'
Der Name der Tabelle mit einem Fremdschlüssel. fktab_nameist sysname mit dem Standardwert NULL.
[ @fktab_schema = ] 'fktab_schema'
Der Name des Schemas mit einem Fremdschlüssel. fktab_schemaist sysname mit dem Standardwert NULL.
[ @fktab_catalog = ] 'fktab_catalog'
Der Name des Katalogs mit einem Fremdschlüssel. fktab_catalogist sysname mit dem Standardwert NULL.
Rückgabecodewerte
Keine
Resultsets
Verschiedene DBMS-Produkte unterstützen dreiteilige Benennungen für Tabellen (Katalog.schema.tabelle), die im Resultset dargestellt wird.
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 | Name der Primärschlüsselspalte bzw. -spalten für jede Spalte der zurückgegebenen TABLE_NAME . 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 zurückgegebenen TABLE_NAME. Dieses Feld gibt immer einen Wert zurück. |
KEY_SEQ | smallint | Sequenznummer der Spalte in einem mehrspaltigen Primärschlüssel. 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 für diese Spalten 0, 1 oder 2 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 für diese Spalten 0, 1 oder 2 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.
Bemerkungen
sp_foreignkeys fragt das FOREIGN_KEYS Rowset der IDBSchemaRowset-Schnittstelle des OLE DB-Anbieters ab, das table_server entspricht. Die Parameter table_name, table_schema, table_catalog und Spalten werden an diese Schnittstelle übergeben, um die zurückgegebenen Zeilen einzuschränken.
Berechtigungen
Erfordert SELECT-Berechtigung für das 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';
Weitere Informationen
sp_catalogs (Transact-SQL)
sp_column_privileges (Transact-SQL)
sp_indexes (Transact-SQL)
sp_linkedservers (Transact-SQL)
sp_primarykeys (Transact-SQL)
sp_tables_ex (Transact-SQL)
sp_table_privileges (Transact-SQL)
Gespeicherte Systemprozeduren (Transact-SQL)
Feedback
Feedback senden und anzeigen für