sp_pkeys (Transact-SQL)
Renvoie des informations de clé primaire pour une table de l'environnement actif.
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';