sp_pkeys (Transact-SQL)

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

Icône Lien de rubrique Conventions de la syntaxe de Transact-SQL

Syntaxe

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 l'argument owner n'est pas spécifié, les règles définissant par défaut la visibilité des tables du SGBD sous-jacent 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 la valeur de owner n'est pas spécifiée et que l'utilisateur actuel ne possède pas de table dont la valeur name est spécifiée, la procédure recherche une table, avec la valeur name spécifiée, qui soit 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. Divers produits SGBD prennent en charge les noms de 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.

Valeurs des codes de retour

None

Jeux de résultats

Nom de la colonne

Type de données

Description

TABLE_QUALIFIER

sysname

Nom du qualificateur de la 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 de TABLE_NAME retournée. 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 retourne 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 retourné dans sp_statistics.

La procédure stockée sp_pkeys est équivalente à SQLPrimaryKeys dans ODBC. Les résultats obtenus 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 AdventureWorks2012.

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

Voir aussi

Référence

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

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