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
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Magazijn in Microsoft Fabric
SQL-database in Microsoft Fabric
Geeft logische vreemde sleutelinformatie terug voor de huidige omgeving. Deze procedure toont vreemde sleutelrelaties, inclusief uitgeschakelde vreemde sleutels.
Transact-SQL syntaxis-conventies
Syntaxis
sp_fkeys
[ [ @pktable_name = ] N'pktable_name' ]
[ , [ @pktable_owner = ] N'pktable_owner' ]
[ , [ @pktable_qualifier = ] N'pktable_qualifier' ]
[ , [ @fktable_name = ] N'fktable_name' ]
[ , [ @fktable_owner = ] N'fktable_owner' ]
[ , [ @fktable_qualifier = ] N'fktable_qualifier' ]
[ ; ]
Arguments
[ @pktable_name = ] N'pktable_name'
De naam van de tabel, met de primaire sleutel, werd gebruikt om catalogusinformatie terug te geven.
@pktable_name is een systeemnaam, met als standaard .NULL Wildcard-patroonmatching wordt niet ondersteund. Deze parameter of de @fktable_name parameter, of beide, moet worden aangeleverd.
[ @pktable_owner = ] N'pktable_owner'
De naam van de eigenaar van de tabel (met de primaire sleutel) die wordt gebruikt om catalogusinformatie terug te geven.
@pktable_owner is een systeemnaam, met als standaard .NULL Wildcard-patroonmatching wordt niet ondersteund. Als @pktable_owner niet is gespecificeerd, gelden de standaard tabelzichtbaarheidsregels van het onderliggende databasebeheersysteem (DBMS).
In SQL Server, als de huidige gebruiker een tabel bezit met de opgegeven naam, worden de kolommen van die tabel teruggegeven. Als @pktable_owner niet is gespecificeerd en de huidige gebruiker geen tabel bezit met de opgegeven @pktable_name, zoekt de procedure naar een tabel met de gespecificeerde @pktable_name die eigendom is van de database-eigenaar. Als er een bestaat, worden de kolommen van die tabel teruggegeven.
[ @pktable_qualifier = ] N'pktable_qualifier'
De naam van de tabel (met de primaire sleutel) kwalificatie.
@pktable_qualifier is sysname, met als standaard .NULL Verschillende DBMS-producten ondersteunen driedelige naamgeving voor tabellen (qualifier.owner.name). In SQL Server vertegenwoordigt de kwalificaat de databasenaam. In sommige producten vertegenwoordigt het de servernaam van de databaseomgeving van de tabel.
[ @fktable_name = ] N'fktable_name'
De naam van de tabel (met een vreemde sleutel) die wordt gebruikt om catalogusinformatie terug te geven.
@fktable_name is sysname, met als standaard .NULL Wildcard-patroonmatching wordt niet ondersteund. Deze parameter of de @pktable_name parameter, of beide, moet worden aangeleverd.
[ @fktable_owner = ] N'fktable_owner'
De naam van de eigenaar van de tabel (met een vreemde sleutel) die wordt gebruikt om catalogusinformatie terug te geven.
@fktable_owner is een systeemnaam, met als standaard NULL. Wildcard-patroonmatching wordt niet ondersteund. Als @fktable_owner niet is gespecificeerd, gelden de standaard tabelzichtbaarheidsregels van de onderliggende DBMS.
In SQL Server, als de huidige gebruiker een tabel bezit met de opgegeven naam, worden de kolommen van die tabel teruggegeven. Als @fktable_owner niet is gespecificeerd en de huidige gebruiker geen tabel bezit met de opgegeven @fktable_name, zoekt de procedure naar een tabel met de gespecificeerde @fktable_name die eigendom is van de database-eigenaar. Als er een bestaat, worden de kolommen van die tabel teruggegeven.
[ @fktable_qualifier = ] N'fktable_qualifier'
De naam van de tabel (met een vreemde sleutel) kwalificatie.
@fktable_qualifier is een systeemnaam, met als standaard NULL. In SQL Server vertegenwoordigt de kwalificaat de databasenaam. In sommige producten vertegenwoordigt het de servernaam van de databaseomgeving van de tabel.
Codewaarden retourneren
Geen.
Resultaatset
| Kolomnaam | Gegevenstype | Description |
|---|---|---|
PKTABLE_QUALIFIER |
sysname | Naam van de tabel (met de primaire sleutel) kwalificatie. Dit veld kan zijn NULL. |
PKTABLE_OWNER |
sysname | Naam van de eigenaar van de tabel (met de primaire sleutel). Dit veld geeft altijd een waarde terug. |
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 sleutelkolommen, voor elke kolom van de teruggestuurde TABLE_NAME . Dit veld geeft altijd een waarde terug. |
FKTABLE_QUALIFIER |
sysname | Naam van de tabel (met een vreemde sleutel) kwalificatie. Dit veld kan zijn NULL. |
FKTABLE_OWNER |
sysname | Naam van de tafel (met een vreemde sleutel) eigenaar. Dit veld geeft altijd een waarde terug. |
FKTABLE_NAME |
sysname | Naam van de tabel (met een vreemde sleutel). Dit veld geeft altijd een waarde terug. |
FKCOLUMN_NAME |
sysname | Naam van de kolom vreemde sleutel, voor elke kolom van de teruggestuurde TABLE_NAME code. 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. Mogelijke waarden:0
=
CASCADE Wijzigingen in vreemde sleutel.1
=
NO ACTION verandert als er een vreemde sleutel aanwezig is.2 = SET_NULL3 = stel standaard in |
DELETE_RULE |
smallint | Actie toegepast op de vreemde sleutel wanneer de SQL-operatie een verwijdering is. Mogelijke waarden:0
=
CASCADE Wijzigingen in vreemde sleutel.1
=
NO ACTION verandert als er een vreemde sleutel aanwezig is.2 = SET_NULL3 = stel standaard in |
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. |
De teruggegeven resultaten zijn geordend door FKTABLE_QUALIFIER, FKTABLE_OWNER, FKTABLE_NAME, en KEY_SEQ.
Opmerkingen
Applicatiecodering die tabellen met uitgeschakelde vreemde sleutels bevat, kan worden geïmplementeerd op de volgende manier:
Tijdelijk constraint checking (
ALTER TABLE NOCHECKofCREATE TABLE NOT FOR REPLICATION) uitschakelen terwijl je met de tabellen werkt, en het later weer inschakelen.Triggers of applicatiecode gebruiken om relaties af te dwingen.
Als de naam van de primaire sleuteltabel is opgegeven en de naam van de vreemde sleutel tabel, NULLsp_fkeys geeft het terug dat alle tabellen die een vreemde sleutel bevatten naar de gegeven tabel terug. Als de naam van de vreemde sleuteltabel wordt opgegeven en de primaire sleutel tabelnaam is NULL, sp_fkeys geven alle tabellen die door een primaire sleutel/vreemde sleutelrelatie verbonden zijn aan vreemde sleutels in de vreemde sleutel tabel.
De sp_fkeys opgeslagen procedure is gelijkwaardig aan SQLForeignKeys in ODBC.
Permissions
Vereist SELECT toestemming voor het schema.
Voorbeelden
Het volgende voorbeeld haalt een lijst van vreemde sleutels op voor de HumanResources.Department tabel in de AdventureWorks2025 database.
USE AdventureWorks2022;
GO
EXECUTE sp_fkeys
@pktable_name = N'Department',
@pktable_owner = N'HumanResources';
Voorbeelden: Azure Synapse Analytics and Analytics Platform System (PDW)
Het volgende voorbeeld haalt een lijst van vreemde sleutels op voor de DimDate tabel in de AdventureWorksPDW2012 database. Er worden geen rijen teruggegeven omdat Azure Synapse Analytics geen vreemde sleutels ondersteunt.
EXECUTE sp_fkeys @pktable_name = N'DimDate';