Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
S’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Entrepôt dans Microsoft Fabric
Base de données SQL dans Microsoft Fabric
Renvoie des informations de clé primaire pour une table de l'environnement actif.
Conventions de la syntaxe Transact-SQL
Syntaxe
Syntaxe pour 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'
Spécifie la table pour laquelle retourner des informations. @table_name est sysname, sans valeur par défaut. La correspondance des modèles génériques n’est pas prise en charge.
[ @table_owner = ] N’table_owner'
Spécifie le propriétaire de la table désignée.
@table_owner est sysname, avec la valeur par défaut NULL. La correspondance des modèles génériques n’est pas prise en charge. Si @table_owner n’est pas spécifié, les règles de visibilité de table par défaut du système de gestion de base de données sous-jacent (SGBD) s’appliquent.
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 le @table_owner n’est pas spécifié et que l’utilisateur actuel ne possède pas de table avec le @table_name spécifié, cette procédure recherche une table avec le @table_name spécifié appartenant au 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 = ] N’table_qualifier'
Qualificateur de table.
@table_qualifier est sysname, avec la valeur par défaut NULL. Différents produits SGBD prennent en charge le nommage en trois parties pour les tables (<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.
Valeurs des codes de retour
Aucune.
Jeu de résultats
| Nom de la colonne | Type de données | Description |
|---|---|---|
TABLE_QUALIFIER |
sysname | Nom du qualificateur de table. Ce champ peut être 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 du TABLE_NAME retour. Dans SQL Server, cette colonne représente le nom de la colonne comme indiqué dans la sys.columns table. 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 si elle n’est pas applicable à la source de données. |
Notes
sp_pkeys retourne des informations sur les colonnes explicitement définies avec une PRIMARY KEY contrainte. 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. Le terme clé primaire fait référence à une clé primaire logique pour une table. Chaque clé répertoriée comme étant une clé primaire logique est censée avoir un index unique défini dessus. Cet index unique est également retourné dans sp_statistics.
La sp_pkeys procédure stockée est équivalente à SQLPrimaryKeys ODBC. Les résultats sont classés par TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAMEet KEY_SEQ.
autorisations
Nécessite l’autorisation SELECT sur le schéma.
Exemples
Les exemples de code de cet article utilisent les bases de données d'exemple AdventureWorks2025 ou AdventureWorksDW2025, que vous pouvez télécharger à partir de la page d'accueil Microsoft SQL Server Samples and Community Projects.
L'exemple suivant extrait la clé primaire de la table HumanResources.Department dans la base de données AdventureWorks2025.
USE AdventureWorks2022;
GO
EXECUTE 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. Elle retourne zéro ligne indiquant que la table n’a pas de clé primaire.
-- Uses AdventureWorksPDW
EXECUTE sp_pkeys @table_name = N'DimAccount';