sp_pkeys (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Entrepôt dans Microsoft Fabric

Renvoie des informations de clé primaire pour une table de l'environnement actif.

Conventions de la syntaxe Transact-SQL

Syntaxe

-- Syntax for SQL Server, Azure SQL Database, Azure Synapse Analytics, Parallel Data Warehouse  
  
sp_pkeys [ @table_name = ] 'name'       
    [ , [ @table_owner = ] 'owner' ]   
    [ , [ @table_qualifier = ] 'qualifier' ]  

Arguments

[ @table_name= ] ’name
Table pour laquelle les informations sont renvoyées. name est de type sysname, sans valeur par défaut. La recherche de correspondance avec des caractères génériques n'est pas prise en charge.

[ @table_owner= ] ’owner
Spécifie le propriétaire de la table désignée. owner est de type sysname, avec NULL comme valeur par défaut. La recherche de correspondance avec des caractères génériques n'est pas prise en charge. Si owner n’est pas précisé, les règles par défaut définissant la visibilité des tables du SGBD sous-jacent sont utilisées.

Dans SQL Server, si l’utilisateur actuel est propriétaire d’une table portant le nom spécifié, les colonnes de cette table sont renvoyées. Si owner n’est pas spécifié et que l’utilisateur actuel ne possède pas de table ayant le name spécifié, la procédure recherche une table portant le name spécifié, possédée par le propriétaire de la base de données. Si la recherche de la table aboutit, ce sont les colonnes de cette dernière qui sont retournées.

[ @table_qualifier= ] ’qualifier
Qualificateur de la table. qualifier est de type sysname, avec NULL comme valeur par défaut. Différents produits SGBD prennent en charge la dénomination des tables en trois parties (qualifier.owner.name). Dans SQL Server, cette colonne représente le nom de la base de données. Dans certains produits, elle représente le nom du serveur de l'environnement de base de données de la table.

Codet de retour

Aucun

Jeux de résultats

Nom de la colonne Type de données Description
TABLE_QUALIFIER sysname Nom du qualificateur de table. Ce champ peut contenir la valeur NULL.
TABLE_OWNER sysname Nom du propriétaire de la table. Ce champ retourne toujours une valeur.
TABLE_NAME sysname Nom de la table. Dans SQL Server, cette colonne représente le nom de la table tel qu’il figure dans la table sysobjects. Ce champ retourne toujours une valeur.
COLUMN_NAME sysname Nom de la colonne, pour chaque colonne renvoyée de la table TABLE_NAME. Dans SQL Server, cette colonne représente le nom de la colonne tel qu’il figure dans la table sys.columns. Ce champ retourne toujours une valeur.
KEY_SEQ smallint Numéro de séquence de la colonne dans une clé primaire multicolonne.
PK_NAME sysname Identificateur de clé primaire. Retourne NULL s'il n'est pas applicable à la source de données.

Notes

sp_pkeys renvoie des informations sur les colonnes explicitement définies avec une contrainte PRIMARY KEY. Comme tous les systèmes ne prennent en charge pas les clés primaires explicitement nommées, la personne chargée de la mise en œuvre des passerelles détermine ce qui constitue une clé primaire. Notez que le terme « clé primaire » fait référence à une clé primaire logique pour une table. À chaque clé indiquée comme étant une clé primaire logique doit correspondre un seul index défini sur cette clé. Cet index unique est également renvoyé dans sp_statistics.

La procédure stockée sp_pkeys est équivalente à SQLPrimaryKeys dans ODBC. Les résultats renvoyés sont triés par TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAME et KEY_SEQ.

Autorisations

Nécessite l'autorisation SELECT sur le schéma.

Exemples

L'exemple suivant extrait la clé primaire de la table HumanResources.Department dans la base de données AdventureWorks2022.

USE AdventureWorks2022;  
GO  
EXEC sp_pkeys @table_name = N'Department'  
    ,@table_owner = N'HumanResources';  

Exemples : Azure Synapse Analytics et Analytics Platform System (PDW)

L'exemple suivant extrait la clé primaire de la table DimAccount dans la base de données AdventureWorksPDW2012. Retourne zéro ligne, indiquant que la table n’a pas de clé primaire.

-- Uses AdventureWorksPDW
  
EXEC sp_pkeys @table_name = N'DimAccount';  

Voir aussi

Procédures stockées de catalogue (Transact-SQL)
Procédures stockées système (Transact-SQL)