Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment créer une contrainte de clé étrangère avec ON DELETE CASCADE dans SQL Server - Tutoriel SQL Server / TSQL Partie 80

Scénario :

Vous travaillez en tant que développeur SQL Server, vous devez créer deux tables avec la relation clé primaire-étrangère. Vous souhaitez créer une contrainte de clé étrangère avec le paramètre si l'enregistrement sera supprimé de la table référencée (table de colonne de clé primaire), il doit également être supprimé de la table parent (table de contrainte de clé étrangère).

Solution :

SQL Server nous a laissé utiliser le paramètre avec la contrainte de clé étrangère appelée On DELETE CASCADE. Si cette règle est implémentée, chaque fois qu'un enregistrement est supprimé de la table référencée (table de colonne de clé primaire), il sera également supprimé de la table parent (table de contrainte de clé étrangère).
Testons ce scénario avec le script ci-dessous.
USE YourDatabaseNameGOCREATE TABLE dbo.Customer ( Customerid INT PRIMARY KEY ,FName VARCHAR(100) ,LName VARCHAR(100) ,SSN VARCHAR(10) ) CREATE TABLE dbo.Orders ( OrderId INT Identity(1, 1) ,OrderitemName VARCHAR(50) ,OrderItemAmt INT ,Customer_id INT FOREIGN KEY REFERENCES Customer(CustomerId) ON DELETE CASCADE ) --insert sample data insert into dbo.Customer (CustomerId,FName, LName,SSN) values ​​(1,'Aamir','Shahzad ','000-000-00')
 
 
 Vérifiez les données dans les tables à l'aide de la requête select.
Comment activer la règle ON Delete CASCADE avec contrainte de clé étrangère dans SQL Server

Supprimons la ligne de la table référencée (table de colonne de clé primaire) et voyons si elle supprime également de la table parent (table de contrainte de clé étrangère)

 --Supprimer l'enregistrement de la table référencée Table (PK Column Table) Supprimer de dbo.Customer où CustomerId=1


Vérifiez à nouveau les tables pour voir si l'enregistrement est supprimé des deux tables en raison de la règle ON Delete Cascade sur la contrainte de clé étrangère.
Comment utiliser ON Delete Cascade pour supprimer des enregistrements de plusieurs tables dans SQL Server Table

Comme nous pouvons le voir, les enregistrements sont supprimés des deux tables en raison de la règle ON DELETE CASCADE de la contrainte de clé étrangère.

Démo vidéo :comment créer une contrainte de clé étrangère avec ON DELETE CASCADE dans SQL Server