Skenario:
Pada posting sebelumnya, kita mengetahui bahwa jika kita memiliki Batasan kunci Asing dengan pengaturan default dan kami mencoba memperbarui nilai di kolom di Tabel Referensi yang digunakan sebagai Kolom Referensi di Batasan Kunci Asing, kami mendapatkan kesalahan. Kami membahas beberapa cara untuk menangani situasi ini, silakan periksa tautan ini.Foreign Key Constraint memang menyediakan opsi untuk mengatur tindakan Cascading, kami dapat membuat Batasan Kunci Asing dengan Pembaruan Cascading.
Jika menggunakan pengaturan Update Cascading, saat kita mengupdate nilai pada Referenced Table , itu juga akan mengupdate nilai pada kolom parent table (Foreign Key Table).
Mari kita uji skenario ini. Buat dua tabel dbo.Customer dan dbo.Order dengan Hubungan Kunci Asing dengan skrip yang diberikan
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)
Mari kita periksa data dalam tabel dengan menggunakan kueri pemilihan
Cara membuat Batasan Kunci Asing dengan Kaskade Pembaruan di SQL Server |
Mari kita jalankan pernyataan pembaruan kami di CustomerId di tabel dbo.Customer dan lihat apakah itu juga memperbarui nilai kolom di dbo.Orders untuk Customer_id.
update dbo.Customer set Customerid=100
Mari kita periksa kembali data di tabel kita
Cara mengaktifkan Update Cascading dengan Batasan Kunci Asing di SQL Server |
Seperti yang kita lihat bahwa nilai juga diperbarui di kolom dbo.Orders.Customer_id.
Video Demo:Cara membuat Batasan Kunci Asing Dengan ON UPDATE CASCADE di SQL Server