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 NULL
toujours .
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';