Scenario:
Du arbetar som SQL Server-utvecklare, du måste skapa två tabeller med Primär - Utländsk nyckelrelation. Du vill skapa främmande nyckelbegränsning med inställning om posten kommer att raderas från refererad tabell (primärnyckelkolumntabell), den bör också raderas från överordnad tabell (utländsk nyckelbegränsningstabell).Lösning:
SQL Server låt oss använda inställningen med Foreign Key Constraint som heter On DELETE CASCADE. Om den här regeln implementeras, när posten raderas från refererad tabell (Primärnyckelkolumntabell), kommer den också att tas bort från överordnad tabell (Foreign Key Constraint Table).Låt oss testa detta scenario med nedanstående skript.
USE YourDatabaseName GO CREATE 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')
Kontrollera data i tabeller med hjälp av en sökfråga.
Hur man aktiverar ON Delete CASCADE-regeln med Foreign Key Constraint i SQL Server |
Låt oss ta bort raden från refererad tabell (primär nyckelkolumntabell) och se om den också raderas från överordnad tabell (tabell med utländsk nyckel)
--Delete the Record from Referenced Table(PK Column Table) Delete from dbo.Customer where CustomerId=1
Kontrollera tabellerna igen för att se om posten har tagits bort från båda tabellerna på grund av ON Delete Cascade-regeln på Foreign Key Constraint.
Hur man använder ON Delete Cascade för att ta bort poster från flera tabeller i SQL Server Table |
Som vi kan se att posterna raderas från båda tabellerna på grund av ON DELETE CASCADE-regeln för Foreign Key Constraint.
Videodemo:Hur man skapar en främmande nyckelbegränsning med ON DELETE CASCADE i SQL Server