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 primaire sleutelinformatie terug voor een enkele tabel in de huidige omgeving.
Transact-SQL syntaxis-conventies
Syntaxis
Syntax for SQL Server, Azure SQL Database, Azure Synapse Analytics, Analytics Platform System (PDW).
sp_pkeys
[ @table_name = ] N'table_name'
[ , [ @table_owner = ] N'table_owner' ]
[ , [ @table_qualifier = ] N'table_qualifier' ]
[ ; ]
Arguments
[ @table_name = ] N'table_name'
Geeft de tabel aan waarvoor informatie moet worden teruggegeven. @table_name is een systeemnaam, zonder standaard. Wildcard-patroonmatching wordt niet ondersteund.
[ @table_owner = ] N'table_owner'
Specificeert de tabeleigenaar van de opgegeven tabel.
@table_owner is sysname, met als standaard .NULL Wildcard-patroonmatching wordt niet ondersteund. Als @table_owner niet is gespecificeerd, gelden de standaard tabelzichtbaarheidsregels van het onderliggende databasebeheersysteem (DBMS).
In SQL Server, als de huidige gebruiker een tabel met de opgegeven naam bezit, worden de kolommen van die tabel teruggegeven. Als de @table_owner niet is gespecificeerd en de huidige gebruiker geen tabel bezit met de opgegeven @table_name, zoekt deze procedure naar een tabel met de gespecificeerde @table_name die eigendom is van de database-eigenaar. Als er een bestaat, worden de kolommen van die tabel teruggegeven.
[ @table_qualifier = ] N'table_qualifier'
De tafelkwalificatie.
@table_qualifier is sysname, met als standaard .NULL Verschillende DBMS-producten ondersteunen drieledige naamgeving voor tabellen (<qualifier>.<owner>.<name>). In SQL Server vertegenwoordigt deze kolom de databasenaam. In sommige producten vertegenwoordigt het de servernaam van de databaseomgeving van de tabel.
Codewaarden retourneren
Geen.
Resultaatset
| Kolomnaam | Gegevenstype | Description |
|---|---|---|
TABLE_QUALIFIER |
sysname | Naam van de tabelkwalificatie. Dit veld kan zijn NULL. |
TABLE_OWNER |
sysname | Naam van de tafelhouder. Dit veld geeft altijd een waarde terug. |
TABLE_NAME |
sysname | Naam van de tabel. In SQL Server vertegenwoordigt deze kolom de tabelnaam zoals vermeld in de sysobjects-tabel. Dit veld geeft altijd een waarde terug. |
COLUMN_NAME |
sysname | Naam van de kolom, voor elke kolom van de teruggestuurde TABLE_NAME . In SQL Server vertegenwoordigt deze kolom de kolomnaam zoals vermeld in de sys.columns tabel. Dit veld geeft altijd een waarde terug. |
KEY_SEQ |
smallint | Volgnummer van de kolom in een primaire sleutel met meerdere kolommen. |
PK_NAME |
sysname | Primaire sleutelidentificatie. Retourneringen NULL als het niet van toepassing is op de databron. |
Opmerkingen
sp_pkeys geeft informatie terug over kolommen expliciet gedefinieerd met een PRIMARY KEY constraint. Omdat niet alle systemen expliciet benoemde primaire sleutels ondersteunen, bepaalt de gateway-implementator wat een primaire sleutel is. De term primaire sleutel verwijst naar een logische primaire sleutel voor een tabel. Elke sleutel die als logische primaire sleutel wordt vermeld, wordt verwacht een unieke index te hebben. Deze unieke index wordt ook teruggegeven in sp_statistics.
De sp_pkeys opgeslagen procedure is gelijkwaardig aan die SQLPrimaryKeys in ODBC. De resultaten zijn geordend door TABLE_QUALIFIER, TABLE_OWNER, , TABLE_NAMEen KEY_SEQ.
Permissions
Vereist SELECT toestemming voor het schema.
Voorbeelden
De codevoorbeelden in dit artikel gebruiken de AdventureWorks2025 of AdventureWorksDW2025 voorbeelddatabase die u kunt downloaden van de startpagina van Microsoft SQL Server Samples en Community Projects .
Het volgende voorbeeld haalt de primaire sleutel voor de HumanResources.Department tabel in de AdventureWorks2025 database op.
USE AdventureWorks2022;
GO
EXECUTE sp_pkeys
@table_name = N'Department',
@table_owner = N'HumanResources';
Voorbeelden: Azure Synapse Analytics and Analytics Platform System (PDW)
Het volgende voorbeeld haalt de primaire sleutel voor de DimAccount tabel in de AdventureWorksPDW2012 database op. Het geeft nul rijen terug, wat aangeeft dat de tabel geen primaire sleutel heeft.
-- Uses AdventureWorksPDW
EXECUTE sp_pkeys @table_name = N'DimAccount';