Scenario:
In eerdere berichten hebben we geleerd dat als we een Foreign key Constraint met standaardinstelling hebben en we proberen de waarde in de kolom in de referentietabel bij te werken die wordt gebruikt als referentiekolom in de Foreign Key Constraint, we een foutmelding krijgen. We hebben meerdere manieren besproken om met de situatie om te gaan, controleer deze link.Foreign Key Constraint biedt de optie om de Cascading-actie in te stellen, we kunnen Foreign Key Constraint creëren met Cascading Update.
Als Cascading-instellingen bijwerken wordt gebruikt, wordt de waarde in de kolom waarnaar wordt verwezen in de tabel met referenties ook bijgewerkt.
Laten we dit scenario testen. Maak twee tabellen dbo.Customer en dbo.Orders met Foreign Key-relatie door opgegeven 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)
Laten we de gegevens in tabellen controleren met behulp van select query
Foreign Key Constraint maken met Update Cascade in SQL Server |
Laten we onze update-instructie uitvoeren op CustomerId in de tabel dbo.Customer en kijken of deze ook de kolomwaarde in dbo.Orders voor Customer_id bijwerkt.
update dbo.Customer set Customerid=100
Laten we de gegevens nogmaals controleren in onze tabellen
Updatecascadering inschakelen met externe sleutelbeperking in SQL Server |
Zoals we kunnen zien, wordt de waarde ook bijgewerkt in de kolom dbo.Orders.Customer_id.
Videodemo:Hoe maak je een Foreign Key Constraint met ON UPDATE CASCADE in SQL Server