Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
Lager i Microsoft Fabric
SQL-databas i Microsoft Fabric
Returnerar primärnyckelinformation för en enskild tabell i den aktuella miljön.
Transact-SQL syntaxkonventioner
Syntax
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'
Specificerar tabellen för vilken information ska returneras. @table_name är sysname, utan standard. Wildcard-mönstermatchning stöds inte.
[ @table_owner = ] N'table_owner'
Specificerar tabellägaren för den angivna tabellen.
@table_owner är sysname, med standardvärdet .NULL Wildcard-mönstermatchning stöds inte. Om @table_owner inte specificeras gäller standardreglerna för tabellsynlighet i det underliggande databashanteringssystemet (DBMS).
I SQL Server, om den nuvarande användaren äger en tabell med det angivna namnet, returneras kolumnerna i den tabellen. Om @table_owner inte är specificerat och den nuvarande användaren inte äger en tabell med angiven @table_name, letar denna procedur efter en tabell med den angivna @table_name som ägs av databasägaren. Om en sådan finns, returneras kolumnerna i den tabellen.
[ @table_qualifier = ] N'table_qualifier'
Tabellkvalificeringen.
@table_qualifier är sysname, med standardvärdet .NULL Olika DBMS-produkter stödjer tredelad namngivning för tabeller (<qualifier>.<owner>.<name>). I SQL Server representerar denna kolumn databasens namn. I vissa produkter representerar den servernamnet på databasmiljön i tabellen.
Returnera kodvärden
Ingen.
Resultatuppsättning
| Kolumnnamn | Datatyp | Description |
|---|---|---|
TABLE_QUALIFIER |
sysname | Namnet på tabellkvalificeraren. Detta fält kan vara NULL. |
TABLE_OWNER |
sysname | Namnet på bordsägaren. Detta fält returnerar alltid ett värde. |
TABLE_NAME |
sysname | Tabellens namn. I SQL Server representerar denna kolumn tabellnamnet som listas i sysobjects-tabellen. Detta fält returnerar alltid ett värde. |
COLUMN_NAME |
sysname | Namn på kolumnen, för varje kolumn i den TABLE_NAME returnerade. I SQL Server representerar denna kolumn kolumnnamnet som anges i tabellen sys.columns . Detta fält returnerar alltid ett värde. |
KEY_SEQ |
smallint | Sekvensnummer för kolumnen i en primärnyckel med flera kolumner. |
PK_NAME |
sysname | Primärnyckelidentifierare. Returer NULL om det inte gäller datakällan. |
Anmärkningar
sp_pkeys returnerar information om kolumner som explicit definierats med en PRIMARY KEY begränsning. Eftersom inte alla system stödjer explicit namngivna primärnycklar, avgör gateway-implementatören vad som utgör en primärnyckel. Termen primärnyckel syftar på en logisk primärnyckel för en tabell. Varje nyckel som anges som en logisk primärnyckel förväntas ha ett unikt index definierat på sig. Detta unika index returneras också i sp_statistics.
Den lagrade sp_pkeys proceduren motsvarar SQLPrimaryKeys den i ODBC. Resultaten är ordnade efter TABLE_QUALIFIER, TABLE_OWNER, , TABLE_NAMEoch KEY_SEQ.
Permissions
Kräver SELECT tillstånd på schemat.
Examples
Kodexemplen i den här artikeln använder AdventureWorks2025- eller AdventureWorksDW2025-exempeldatabasen, som du kan ladda ned från startsidan Microsoft SQL Server Samples och Community Projects.
Följande exempel hämtar primärnyckeln för HumanResources.Department tabellen i databasen AdventureWorks2025 .
USE AdventureWorks2022;
GO
EXECUTE sp_pkeys
@table_name = N'Department',
@table_owner = N'HumanResources';
Exempel: Azure Synapse Analytics and Analytics Platform System (PDW)
Följande exempel hämtar primärnyckeln för DimAccount tabellen i databasen AdventureWorksPDW2012 . Den returnerar noll rader vilket indikerar att tabellen inte har någon primärnyckel.
-- Uses AdventureWorksPDW
EXECUTE sp_pkeys @table_name = N'DimAccount';