Delen via


sp_foreignkeys (Transact-SQL)

Van toepassing op:SQL Server

Geeft de vreemde sleutels terug die primaire sleutels verwijzen op de tabel in de gekoppelde server.

Transact-SQL syntaxis-conventies

Syntaxis

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'

De naam van de gekoppelde server waarvoor tabelinformatie moet worden teruggegeven. @table_server is een systeemnaam, zonder standaard.

[ @pktab_name = ] N'pktab_name'

De naam van de tabel met een primaire sleutel. @pktab_name is systeemnaam, met als standaard .NULL

[ @pktab_schema = ] N'pktab_schema'

De naam van het schema met een primaire sleutel. @pktab_schema is sysname, met als standaard .NULL In SQL Server bevat deze parameter de eigenaarnaam.

[ @pktab_catalog = ] N'pktab_catalog'

De naam van de catalogus met een primaire sleutel. @pktab_catalog is sysname, met als standaard .NULL In SQL Server bevat deze parameter de databasenaam.

[ @fktab_name = ] N'fktab_name'

De naam van de tafel met een vreemde sleutel. @fktab_name is sysname, met als standaard .NULL

[ @fktab_schema = ] N'fktab_schema'

De naam van het schema met een vreemde sleutel. @fktab_schema is een systeemnaam, met als standaard NULL.

[ @fktab_catalog = ] N'fktab_catalog'

De naam van de catalogus met een vreemde sleutel. @fktab_catalog is een systeemnaam, met als standaard NULL.

Codewaarden retourneren

Geen.

Resultaatset

Verschillende databasebeheersystemen (DBMS)-producten ondersteunen driedelige naamgeving voor tabellen (<catalog>.<schema>.<table>), die wordt weergegeven in de resultaatset.

Kolomnaam Gegevenstype Description
PKTABLE_CAT sysname Catalogus van de tabel waarin de primaire sleutel zich bevindt.
PKTABLE_SCHEM sysname Schema voor de tabel waarin de primaire sleutel zich bevindt.
PKTABLE_NAME sysname Naam van de tabel (met de primaire sleutel). Dit veld geeft altijd een waarde terug.
PKCOLUMN_NAME sysname Naam van de primaire sleutelkolom of kolommen, voor elke kolom van de teruggestuurde TABLE_NAME . Dit veld geeft altijd een waarde terug.
FKTABLE_CAT sysname Catalogus van de tabel waarin de vreemde sleutel zich bevindt.
FKTABLE_SCHEM sysname Schema voor de tabel waarin de vreemde sleutel zich bevindt.
FKTABLE_NAME sysname Naam van de tabel (met een vreemde sleutel). Dit veld geeft altijd een waarde terug.
FKCOLUMN_NAME sysname Naam van de kolommen van de vreemde sleutel, voor elke kolom van de teruggestuurde TABLE_NAME . Dit veld geeft altijd een waarde terug.
KEY_SEQ smallint Volgnummer van de kolom in een primaire sleutel met meerdere kolommen. Dit veld geeft altijd een waarde terug.
UPDATE_RULE smallint Actie toegepast op de vreemde sleutel wanneer de SQL-operatie een update is. SQL Server geeft 0, 1 of 2 terug voor deze kolommen:

0 = CASCADE Wijzigingen in vreemde sleutel.
1 = NO ACTION verandert als er een vreemde sleutel aanwezig is.
2 = SET_NULL; Stel de vreemde sleutel in op NULL.
DELETE_RULE smallint Actie toegepast op de vreemde sleutel wanneer de SQL-operatie een verwijdering is. SQL Server geeft 0, 1 of 2 terug voor deze kolommen:

0 = CASCADE Wijzigingen in vreemde sleutel.
1 = NO ACTION verandert als er een vreemde sleutel aanwezig is.
2 = SET_NULL; Stel de vreemde sleutel in op NULL.
FK_NAME sysname Vreemde sleutel-identificatie. Het is NULL zo niet toepasbaar op de databron. SQL Server geeft de naam van de FOREIGN KEY beperking terug.
PK_NAME sysname Primaire sleutelidentificatie. Het is NULL zo niet toepasbaar op de databron. SQL Server geeft de naam van de PRIMARY KEY beperking terug.
DEFERRABILITY smallint Geeft aan of constraint checking uitstelbaar is.

In de resultaatverzameling geven de kolommen FK_NAME en PK_NAME altijd .NULL

Opmerkingen

sp_foreignkeys bevraagt de FOREIGN_KEYS rijset van de IDBSchemaRowset interface van de OLE DB-provider die overeenkomt met @table_server. De parameters @table_name, @table_schema, @table_catalog en @column worden aan deze interface doorgegeven om het aantal teruggestuurde rijen te beperken.

Permissions

Vereist SELECT toestemming voor het schema.

Voorbeelden

Het volgende voorbeeld geeft vreemde sleutelinformatie terug over de Department tabel in de AdventureWorks2025 database op de gekoppelde server, Seattle1.

EXECUTE sp_foreignkeys
    @table_server = N'Seattle1',
    @pktab_name = N'Department',
    @pktab_catalog = N'AdventureWorks2022';