sp_foreignkeys (Transact-SQL)

S’applique à :SQL Server

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 retourner des informations de table. table_server est sysname, sans valeur par défaut.

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

[ @pktab_schema = ] 'pktab_schema' Nom du schéma avec une clé primaire. pktab_schemaest sysname, avec la valeur par défaut NULL. Dans SQL Server, il contient le nom du propriétaire.

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

[ @fktab_name = ] 'fktab_name' Nom de la table avec une clé étrangère. fktab_nameest sysname, avec la valeur par défaut NULL.

[ @fktab_schema = ] 'fktab_schema' Nom du schéma avec une clé étrangère. fktab_schemaest sysname, avec la valeur par défaut NULL.

[ @fktab_catalog = ] 'fktab_catalog' Nom du catalogue avec une clé étrangère. fktab_catalogest sysname, avec la valeur par défaut NULL.

Codet de retour

Aucun

Jeux de résultats

Différents produits SGBD prennent en charge le nommage en trois parties pour les tables (catalogue.schéma.table), qui est représentée dans le jeu de résultats.

Nom de la 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 de la ou des colonnes de clé primaire, pour chaque colonne de la TABLE_NAME retournée. 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 de séquence 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.

Remarques

sp_foreignkeys interroge l’ensemble de lignes FOREIGN_KEYS de l’interface IDBSchemaRowset du fournisseur OLE DB qui correspond à table_server. Les paramètres table_name, table_schema, table_catalog et de colonne sont passés à cette interface pour limiter les lignes retournées.

Autorisations

Nécessite l'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 AdventureWorks2022 située sur le serveur lié Seattle1.

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

Voir aussi

sp_catalogs (Transact-SQL)
sp_column_privileges (Transact-SQL)
sp_indexes (Transact-SQL)
sp_linkedservers (Transact-SQL)
sp_primarykeys (Transact-SQL)
sp_tables_ex (Transact-SQL)
sp_table_privileges (Transact-SQL)
Procédures stockées système (Transact-SQL)