sp_foreignkeys (Transact-SQL)
Retourne les clés étrangères faisant référence aux clés primaires de la table du serveur lié.
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';
Voir aussi