Scenario:
I tidigare inlägg får vi veta att om vi har Foreign Key Constraint med standardinställning och vi försöker uppdatera värdet i kolumn i Reference Table som används som referenskolumn i Foreign Key Constraint, får vi ett fel. Vi diskuterade flera sätt att hantera situationen, kolla den här länken.Foreign Key Constraint ger möjlighet att ställa in Cascading-åtgärden, vi kan skapa Foreign Key Constraint med Cascading Update.
Om Update Cascading-inställningar används, när vi uppdaterar värdet i Refererad tabell, kommer det också att uppdatera värdet i kolumnen för överordnad tabell (Foreign Key Table).
Låt oss testa detta scenario. Skapa två tabeller dbo.Customer och dbo.Orders med utländsk nyckelrelation genom givet 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 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)
Låt oss kontrollera data i tabeller med hjälp av urvalsfråga
Hur man skapar en utländsk nyckelbegränsning med Update Cascade i SQL Server |
Låt oss köra vår uppdateringssats på CustomerId i dbo.Customer table och se om den också uppdaterar kolumnvärdet i dbo.Orders for Customer_id.
update dbo.Customer set Customerid=100
Låt oss kontrollera data igen i våra tabeller
Hur man aktiverar uppdaterings kaskadkoppling med främmande nyckelbegränsning i SQL Server |
Som vi kan se att värdet också uppdateras i kolumnen dbo.Orders.Customer_id.
Videodemo:Hur man skapar en främmande nyckelbegränsning med PÅ UPPDATERING CASCADE i SQL Server