Partage via


sp_pkeys (Transact-SQL)

S’applique à : ENTREPÔT SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytique Analytique Platform System (PDW) 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 Analytique, système de plateforme Analytique (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 Transact-SQL de cet article sont fondés sur l’échantillon de base de données AdventureWorks2022 ou AdventureWorksDW2022 fourni, que vous pouvez télécharger à partir de la page d’accueil Échantillons et projets communautaires Microsoft SQL Server.

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. Elle retourne zéro ligne indiquant que la table n’a pas de clé primaire.

-- Uses AdventureWorksPDW

EXEC sp_pkeys @table_name = N'DimAccount';