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 = ] N'table_server'
    [ , [ @pktab_name = ] N'pktab_name' ]
    [ , [ @pktab_schema = ] N'pktab_schema' ]
    [ , [ @pktab_catalog = ] N'pktab_catalog' ]
    [ , [ @fktab_name = ] N'fktab_name' ]
    [ , [ @fktab_schema = ] N'fktab_schema' ]
    [ , [ @fktab_catalog = ] N'fktab_catalog' ]
[ ; ]

Arguments

[ @table_server = ] N’table_server'

Nom du serveur lié pour lequel retourner les informations de table. @table_server est sysname, sans valeur par défaut.

[ @pktab_name = ] N’pktab_name'

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

[ @pktab_schema = ] N’pktab_schema'

Nom du schéma avec une clé primaire. @pktab_schema est sysname, avec la valeur par défaut NULL. Dans SQL Server, ce paramètre contient le nom du propriétaire.

[ @pktab_catalog = ] N’pktab_catalog'

Nom du catalogue avec une clé primaire. @pktab_catalog est sysname, avec la valeur par défaut NULL. Dans SQL Server, ce paramètre contient le nom de la base de données.

[ @fktab_name = ] N’fktab_name'

Nom de la table avec une clé étrangère. @fktab_name est sysname, avec la valeur par défaut NULL.

[ @fktab_schema = ] N’fktab_schema'

Nom du schéma avec une clé étrangère. @fktab_schema est sysname, avec la valeur par défaut NULL.

[ @fktab_catalog = ] N’fktab_catalog'

Nom du catalogue avec une clé étrangère.@fktab_catalog est sysname, avec la valeur par défaut NULL.

Valeurs des codes de retour

Aucune.

Jeu de résultats

Différents produits de système de gestion de base de données (SGBD) prennent en charge le nommage en trois parties pour les tables (<catalog>.<schema>.<table>), qui est représenté 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 colonne ou des colonnes de clé primaire, pour chaque colonne du TABLE_NAME retour. 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 chaque colonne du TABLE_NAME retour. 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 les colonnes suivantes :

0 = CASCADE modifications apportées à la clé étrangère.
1 = NO ACTION change si la clé étrangère est présente.
2 = SET_NULL; définissez la clé étrangère sur NULL.
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 les colonnes suivantes :

0 = CASCADE modifications apportées à la clé étrangère.
1 = NO ACTION change si la clé étrangère est présente.
2 = SET_NULL; définissez la clé étrangère sur NULL.
FK_NAME sysname Identificateur de clé étrangère. S’il n’est NULL pas applicable à la source de données. SQL Server retourne le nom de FOREIGN KEY la contrainte.
PK_NAME sysname Identificateur de clé primaire. S’il n’est NULL pas applicable à la source de données. SQL Server retourne le nom de PRIMARY KEY la contrainte.
DEFERRABILITY smallint Indique si la vérification des contraintes peut être différée.

Dans le jeu de résultats, les colonnes et PK_NAME les FK_NAME colonnes retournent NULLtoujours .

Notes

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 @column sont passés à cette interface pour restreindre 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';