Scenarie:
I tidligere indlæg lærer vi, at hvis vi har Foreign Key Constraint med standardindstilling, og vi forsøger at opdatere værdien i kolonnen i referencetabel, som bruges som referencekolonne i Foreign Key Constraint, får vi fejl. Vi diskuterede flere måder at håndtere situationen på. Tjek venligst dette link.Foreign Key Constraint giver mulighed for at indstille Cascading-handlingen, vi kan oprette Foreign Key Constraint med Cascading Update.
Hvis Update Cascading-indstillinger bruges, når vi opdaterer værdien i Referencetabel , vil den også opdatere værdien i kolonnen overordnet tabel (Foreign Key Table).
Lad os teste dette scenarie. Opret to tabeller dbo.Customer og dbo.Orders with Foreign Key Relationship by given script
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 UPDATE CASCADE ) --insert sample data insert into dbo.Customer (CustomerId,FName, LName,SSN) values (1,'Aamir','Shahzad','000-000-00') insert into dbo.Orders (OrderItemName,OrderItemAmt,Customer_Id) values ('TV',1,1)
Lad os tjekke dataene i tabeller ved at bruge select query
Sådan opretter du fremmednøglebegrænsning med Update Cascade i SQL Server |
Lad os køre vores opdateringserklæring på CustomerId i dbo.Customer table og se, om den også opdaterer kolonneværdien i dbo.Orders for Customer_id.
update dbo.Customer set Customerid=100
Lad os tjekke dataene igen i vores tabeller
Sådan aktiverer du opdateringskaskade med fremmednøglebegrænsning i SQL Server |
Som vi kan se, er værdien også opdateret i kolonnen dbo.Orders.Customer_id.
Videodemo:Sådan opretter du en fremmednøglebegrænsning med ON UPDATE CASCADE i SQL Server