Vue d'ensemble de l'intégrité référentielle
L'intégrité référentielle est un système de règles garantissant la validité des relations entre lignes de tables en relation et la protection contre une suppression ou une modification éventuelle des données en relation.
[!REMARQUE]
Une nouvelle version du concepteur de tables s'affiche pour les bases de données dans le format SQL Server 2012. Cette rubrique décrit l'ancienne version du Concepteur de tables que vous utilisez avec des bases de données aux formats antérieurs de SQL Server.
Dans la nouvelle version, vous pouvez modifier une définition de table via une interface graphique ou directement dans un volet script. Si vous voulez utiliser l'interface graphique, la définition de tables est automatiquement mise à jour dans le volet script. Pour appliquer le code SQL dans le volet script, choisissez le bouton Mettre à jour. Pour plus d'informations sur la nouvelle version, consultez Comment : créer des objets de base de données à l'aide du concepteur de tables.
Procédure
Vous pouvez définir une intégrité référentielle lorsque toutes les conditions suivantes sont remplies :
La colonne correspondante dans la table de clé primaire est une clé primaire ou a une contrainte unique.
Les colonnes en relation dans la table de clé étrangère ont le même type de données et la même taille.
Lorsque l'intégrité référentielle a été mise en œuvre, vous devez respecter les règles suivantes :
Il est impossible d'entrer une valeur dans la colonne de clé étrangère de la table en relation si cette valeur n'existe pas dans la clé primaire de la table en relation.Cependant, vous pouvez entrer dans la colonne de la clé étrangère une valeur null.Par exemple, il est impossible d'indiquer qu'un travail est attribué à un employé si ce dernier n'est pas présent dans la table employee, mais vous pouvez indiquer qu'aucun travail n'est attribué à l'employé par l'entrée d'une valeur null dans la colonne job_id de la table employee.
Il est impossible de supprimer une ligne de la table de clé primaire si elle correspond à des lignes existant dans une table en relation.Par exemple, il est impossible de supprimer des lignes de la table jobs si des employés sont assignés au travail représenté par cette ligne dans la table employee
Il est impossible de modifier la valeur d'une clé primaire dans la table de clé primaire si des lignes sont en relation avec celle-ci.Par exemple, vous ne pouvez pas modifier la valeur job_id d'une ligne dans la table jobs s'il existe des employés possédant ce job_id dans la table des employés.
Voir aussi
Référence
Relations de clé étrangère, boîte de dialogue