Skenario:
Anda bekerja sebagai pengembang SQL Server, Anda perlu membuat dua tabel dengan Hubungan Kunci Utama - Asing. Anda ingin membuat Batasan Kunci Asing dengan pengaturan jika record akan dihapus dari Tabel Referensi (Tabel Kolom Kunci Utama), juga harus dihapus dari Tabel Induk (Tabel Batasan Kunci Asing).Solusi:
SQL Server mari kita gunakan pengaturan dengan Batasan Kunci Asing yang disebut On DELETE CASCADE. Jika aturan ini diterapkan, setiap kali record dihapus dari Tabel Referensi (Tabel Kolom Kunci Utama), itu juga akan dihapus dari Tabel Induk ( Tabel Batasan Kunci Asing).Mari kita uji skenario ini dengan skrip di bawah ini.
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 DELETE CASCADE ) --insert sample data insert into dbo.Customer (CustomerId,FName, LName,SSN) values (1,'Aamir','Shahzad','000-000-00')
Periksa data dalam tabel dengan menggunakan kueri pemilihan.
Cara mengaktifkan ON Hapus aturan CASCADE dengan Batasan Kunci Asing di SQL Server |
Mari kita hapus baris dari Tabel Referensi (Tabel Kolom Kunci Utama) dan lihat apakah baris tersebut juga dihapus dari Tabel Induk (Tabel Batasan Kunci Asing)
--Delete the Record from Referenced Table(PK Column Table) Delete from dbo.Customer where CustomerId=1
Periksa kembali tabel untuk melihat apakah record dihapus dari kedua tabel karena aturan ON Delete Cascade pada Batasan Kunci Asing.
Cara menggunakan ON Hapus Kaskade untuk menghapus catatan dari beberapa Tabel di Tabel SQL Server |
Seperti yang dapat kita lihat bahwa catatan dihapus dari kedua tabel karena aturan ON DELETE CASCADE dari Batasan Kunci Asing.
Demo Video:Cara membuat Batasan Kunci Asing dengan ON DELETE CASCADE di SQL Server