REFERENTIAL_CONSTRAINTS (Transact-SQL)
Renvoie une ligne pour chaque contrainte FOREIGN KEY dans la base de données active. Cette vue des schémas d'information renvoie des informations sur les objets autorisés pour l'utilisateur actuel.
Pour récupérer les informations de ces vues, spécifiez le nom complet de INFORMATION_SCHEMA.view_name.
Nom de la colonne |
Type de données |
Description |
---|---|---|
CONSTRAINT_CATALOG |
nvarchar(128) |
Qualificateur de la contrainte |
CONSTRAINT_SCHEMA |
nvarchar(128) |
Nom du schéma qui contient la contrainte.
Important
N'utilisez pas les vues INFORMATION_SCHEMA pour déterminer le schéma d'un objet. La seule méthode fiable pour rechercher le schéma d'un objet est d'interroger l'affichage catalogue sys.objects ou d'utiliser la fonction OBJECT_SCHEMA_NAME.
|
CONSTRAINT_NAME |
sysname |
Nom de la contrainte. |
UNIQUE_CONSTRAINT_CATALOG |
nvarchar(128) |
Identificateur de la contrainte unique. |
UNIQUE_CONSTRAINT_SCHEMA |
nvarchar(128) |
Nom du schéma qui contient la contrainte UNIQUE.
Important
N'utilisez pas les vues INFORMATION_SCHEMA pour déterminer le schéma d'un objet. La seule méthode fiable pour rechercher le schéma d'un objet est d'interroger l'affichage catalogue sys.objects ou d'utiliser la fonction OBJECT_SCHEMA_NAME.
|
UNIQUE_CONSTRAINT_NAME |
sysname |
Contrainte UNIQUE. |
MATCH_OPTION |
varchar(7) |
Conditions référentielles de correspondance de contraintes. Renvoie toujours la valeur SIMPLE. Signifie qu'aucune correspondance n'est définie. La condition est considérée comme correspondante si l'une des conditions suivantes est réalisée :
|
UPDATE_RULE |
varchar(11) |
Action entreprise lorsqu'une instruction Transact-SQL viole l'intégrité référentielle définie par cette contrainte. Renvoie l'une des valeurs suivantes :
Si NO ACTION est spécifié sur une instruction ON UPDATE de cette contrainte, la mise à jour de la clé primaire référencée dans la contrainte n'est pas propagée vers la clé étrangère. Si une telle mise à jour enfreint l'intégrité référentielle car au moins une clé étrangère contient la même valeur, SQL Server n'apporte aucune modification aux tables parentes et de référence. Par ailleurs, SQL Server génère une erreur. Si CASCADE est spécifié sur une instruction ON UPDATE de cette contrainte, toute modification de valeur de la clé primaire est automatiquement propagée vers la valeur de la clé étrangère. |
DELETE_RULE |
varchar(11) |
Action entreprise lorsqu'une instruction Transact-SQL viole l'intégrité référentielle définie par cette contrainte. Renvoie l'une des valeurs suivantes :
Si NO ACTION est spécifié sur une instruction ON DELETE de cette contrainte, la suppression de la clé primaire référencée dans la contrainte n'est pas propagée vers la clé étrangère. Si la suppression d'une clé primaire enfreint l'intégrité référentielle car au moins une clé étrangère contient la même valeur, SQL Server n'apporte aucune modification aux tables parentes et de référence. Par ailleurs, SQL Server génère une erreur. Si CASCADE est spécifié sur une instruction ON DELETE de cette contrainte, toute modification de valeur de la clé primaire est automatiquement propagée vers la valeur de la clé étrangère. |
Exemples
Dans l'exemple suivant, vous obtenez les informations relatives à chaque clé étrangère dans le schéma Sales de la base de données.
USE AdventureWorks;
GO
SELECT CONSTRAINT_SCHEMA, CONSTRAINT_NAME, UNIQUE_CONSTRAINT_SCHEMA, UNIQUE_CONSTRAINT_NAME,
MATCH_OPTION, UPDATE_RULE, DELETE_RULE
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
WHERE CONSTRAINT_SCHEMA = 'Sales';