Szenario:
In früheren Beiträgen haben wir erfahren, dass wir einen Fehler erhalten, wenn wir eine Fremdschlüsseleinschränkung mit Standardeinstellung haben und versuchen, den Wert in der Spalte in der Referenztabelle zu aktualisieren, die als Referenzspalte in der Fremdschlüsseleinschränkung verwendet wird. Wir haben mehrere Möglichkeiten besprochen, mit der Situation umzugehen. Bitte überprüfen Sie diesen Link.Foreign Key Constraint bietet die Option, die Cascading-Aktion festzulegen, wir können Foreign Key Constraint mit Cascading Update erstellen.
Wenn die Update Cascading-Einstellungen verwendet werden, wird beim Aktualisieren des Werts in der referenzierten Tabelle auch der Wert in der Spalte der übergeordneten Tabelle (Fremdschlüsseltabelle) aktualisiert.
Lassen Sie uns dieses Szenario testen. Erstellen Sie zwei Tabellen dbo.Customer und dbo.Orders mit Fremdschlüsselbeziehung durch gegebenes 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)
Lassen Sie uns die Daten in Tabellen überprüfen, indem Sie select query
verwenden |
Erstellen einer Fremdschlüsseleinschränkung mit Update Cascade in SQL Server |
Lassen Sie uns unsere Update-Anweisung auf CustomerId in der Tabelle dbo.Customer ausführen und sehen, ob sie auch den Spaltenwert in dbo.Orders für Customer_id aktualisiert.
update dbo.Customer set Customerid=100
Überprüfen wir die Daten noch einmal in unseren Tabellen
So aktivieren Sie die Aktualisierungskaskadierung mit Fremdschlüsseleinschränkung in SQL Server |
Wie wir sehen können, wird der Wert auch in der Spalte dbo.Orders.Customer_id aktualisiert.
Videodemo:So erstellen Sie eine Fremdschlüsselbeschränkung mit ON UPDATE CASCADE in SQL Server