Partager via


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 extraire des informations de ces vues, spécifiez le nom complet **INFORMATION_SCHEMA.**view_name.

Nom de colonne

Type de données

Description

CONSTRAINT_CATALOG

nvarchar(128)

Identificateur de la contrainte.

CONSTRAINT_SCHEMA

nvarchar(128)

Nom du schéma qui contient la contrainte.

ImportantImportant
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.

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.

ImportantImportant
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.

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 :

  • au moins une valeur de la colonne de clé étrangère est NULL ;

  • toutes les valeurs de la colonne de clé étrangère ne comportent pas la valeur NULL, et une ligne de la table de clé primaire contient la même clé.

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 :

  • NO ACTION

  • CASCADE

  • SET NULL

  • SET DEFAULT

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 :

  • NO ACTION

  • CASCADE

  • SET NULL

  • SET DEFAULT

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.