Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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';