sp_foreignkeys (Transact-SQL)

Retourne les clés étrangères faisant référence aux clés primaires de la table du serveur lié.

Icône Lien de rubriqueConventions de la syntaxe Transact-SQL

Syntaxe

sp_foreignkeys [ @table_server = ] 'table_server' 
     [ , [ @pktab_name = ] 'pktab_name' ] 
     [ , [ @pktab_schema = ] 'pktab_schema' ] 
     [ , [ @pktab_catalog = ] 'pktab_catalog' ] 
     [ , [ @fktab_name = ] 'fktab_name' ] 
     [ , [ @fktab_schema = ] 'fktab_schema' ] 
     [ , [ @fktab_catalog = ] 'fktab_catalog' ]

Arguments

  • [ @table_server = ] 'table_server'
    Nom du serveur lié pour lequel sont retournées les informations de table. table_server est de type sysname, sans valeur par défaut.

  • [ @pktab_name = ] 'pktab_name'
    Nom de la table contenant une clé primaire. L'argument pktab_name est de type sysname, avec NULL comme valeur par défaut.

  • [ @pktab_schema = ] 'pktab_schema'
    Nom du schéma contenant une clé primaire. L'argument pktab_schema est de type sysname, avec NULL comme valeur par défaut. Dans SQL Server 2008, il contient le nom du propriétaire.

  • [ @pktab_catalog = ] 'pktab_catalog'
    Nom du catalogue contenant une clé primaire. L'argument pktab_catalog est de type sysname, avec NULL comme valeur par défaut. Dans SQL Server, il contient le nom de la base de données.

  • [ @fktab_name = ] 'fktab_name'
    Nom de la table contenant une clé étrangère. L'argument fktab_name est de type sysname, avec NULL comme valeur par défaut.

  • [ @fktab_schema = ] 'fktab_schema'
    Nom du schéma contenant une clé étrangère. L'argument fktab_schema est de type sysname, avec NULL comme valeur par défaut.

  • [ @fktab_catalog = ] 'fktab_catalog'
    Nom du catalogue contenant une clé étrangère. L'argument fktab_catalog est de type sysname, avec NULL comme valeur par défaut.

Valeurs des codes de retour

Aucune

Jeux de résultats

Divers produits de SGBD gèrent les noms de tables en trois parties (catalog**.schema.**table), qui sont utilisés dans le jeu de résultats.

Nom de colonne

Type de données

Description

PKTABLE_CAT

sysname

Catalogue de la table contenant la clé primaire.

PKTABLE_SCHEM

sysname

Schéma de la table contenant la clé primaire.

PKTABLE_NAME

sysname

Nom de la table (contenant la clé primaire). Ce champ retourne toujours une valeur.

PKCOLUMN_NAME

sysname

Nom des colonnes de clé primaire, pour chacune des colonnes de la table TABLE_NAME retournées. Ce champ retourne toujours une valeur.

FKTABLE_CAT

sysname

Catalogue de la table contenant la clé étrangère.

FKTABLE_SCHEM

sysname

Schéma de la table contenant la clé étrangère.

FKTABLE_NAME

sysname

Nom de la table (contenant une clé étrangère). Ce champ retourne toujours une valeur.

FKCOLUMN_NAME

sysname

Nom des colonnes de clé étrangère, pour chacune des colonnes de la table TABLE_NAME retournées. Ce champ retourne toujours une valeur.

KEY_SEQ

smallint

Numéro d'ordre de la colonne dans une clé primaire multicolonne. Ce champ retourne toujours une valeur.

UPDATE_RULE

smallint

Action appliquée à la clé étrangère lorsque l'opération SQL est une mise à jour. SQL Server retourne 0, 1 ou 2 pour ces colonnes :

0=Modifications de type CASCADE apportées à la clé étrangère.

1=Modifications de type NO ACTION en présence de clé étrangère.

2=SET_NULL ; affectation de NULL à la clé étrangère.

DELETE_RULE

smallint

Action appliquée à la clé étrangère lorsque l'opération SQL est une suppression. SQL Server retourne 0, 1 ou 2 pour ces colonnes :

0=Modifications de type CASCADE apportées à la clé étrangère.

1=Modifications de type NO ACTION en présence de clé étrangère.

2=SET_NULL ; affectation de NULL à la clé étrangère.

FK_NAME

sysname

Identificateur de clé étrangère. NULL si non applicable à la source de données. SQL Server retourne le nom de la contrainte FOREIGN KEY.

PK_NAME

sysname

Identificateur de clé primaire. Valeur NULL s'il n'est pas applicable à la source de données. SQL Server retourne le nom de la contrainte PRIMARY KEY.

DEFERRABILITY

smallint

Indique si la vérification des contraintes peut être différée.

Dans le jeu de résultats, les colonnes FK_NAME et PK_NAME retournent toujours une valeur NULL.

Notes

La procédure sp_foreignkeys effectue une requête sur l'ensemble de lignes FOREIGN_KEYS contenu dans l'interface IDBSchemaRowset du fournisseur OLE DB correspondant au paramètre table_server. Les paramètres table_name, table_schema, table_catalog et column sont passés à cette interface afin de limiter le nombre de lignes retournées.

Autorisations

Nécessite une autorisation SELECT sur le schéma.

Exemples

L'exemple suivant retourne les informations de clé étrangère relatives à la table Department de la base de données AdventureWorks2008R2 située sur le serveur lié Seattle1.

EXEC sp_foreignkeys @table_server = N'Seattle1', 
   @pktab_name = N'Department', 
   @pktab_catalog = N'AdventureWorks2008R2';