sp_foreignkeys (Transact-SQL)
Retourne les clés étrangères faisant référence aux clés primaires de la table du serveur lié.
Conventions 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 et n'a pas de valeur par défaut.[ @pktab_name = ] 'pktab_name'
Nom de la table contenant une clé primaire. 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. pktab_schemaest de type sysname, avec NULL comme valeur par défaut. Dans SQL Server, il contient le nom du propriétaire.[ @pktab_catalog = ] 'pktab_catalog'
Nom du catalogue contenant une clé primaire. pktab_catalogest 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. fktab_nameest de type sysname, avec NULL comme valeur par défaut.[ @fktab_schema = ] 'fktab_schema'
Nom du schéma contenant une clé étrangère. fktab_schemaest de type sysname, avec NULL comme valeur par défaut.[ @fktab_catalog = ] 'fktab_catalog'
Nom du catalogue contenant une clé étrangère. fktab_catalogest de type sysname, avec NULL comme valeur par défaut.
Valeurs des codes de retour
Aucune
Jeux de résultats
Divers produits SGBD prennent en charge 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. NULL si non 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 AdventureWorks2012 située sur le serveur lié Seattle1.
EXEC sp_foreignkeys @table_server = N'Seattle1',
@pktab_name = N'Department',
@pktab_catalog = N'AdventureWorks2012';
Voir aussi
Référence
sp_column_privileges (Transact-SQL)
sp_linkedservers (Transact-SQL)