Freigeben über


sp_foreignkeys (Transact-SQL)

Gibt die Fremdschlüssel zurück, die auf Primärschlüssel in der Tabelle auf dem Verbindungsserver verweisen.

Gilt für: SQL Server (SQL Server 2008 bis aktuelle Version).

Themenlink (Symbol) 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_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)