Kịch bản:
Bạn đang làm việc với tư cách là nhà phát triển SQL Server, bạn cần tạo hai bảng với Mối quan hệ chính -Foreign Key. Bạn muốn tạo Ràng buộc khóa ngoại với cài đặt nếu bản ghi sẽ bị xóa khỏi Bảng được tham chiếu (Bảng cột khóa chính), nó sẽ không bị xóa khỏi Bảng mẹ (Bảng ràng buộc khóa ngoại) thay vào đó giá trị phải được cập nhật thành Null.Giải pháp:
Chúng ta có thể sử dụng ON DELETE SET NULL với định nghĩa Ràng buộc khóa ngoại để thực hiện yêu cầu trên.Hãy thực hiện bằng cách sử dụng tập lệnh bên dưới.
SỬ DỤNG YourDatabaseNameGOCREATE TABLE dbo.Customer (Customerid INT PRIMARY KEY, FName VARCHAR (100), LName VARCHAR (100), SSN VARCHAR (10)) TẠO BẢNG dbo.Orders ( OrderId INT Identity (1, 1), OrderitemName VARCHAR (50), OrderItemAmt INT, Customer_id INT FOREIGN KEY THAM KHẢO Khách hàng (CustomerId) ON DELETE SET NULL) - chèn dữ liệu mẫu vào dbo.Customer (CustomerId, FName, LName, SSN ) các giá trị (1, 'Aamir', 'Shahzad', '000-000-00') chèn vào các giá trị dbo.Orders (OrderItemName, OrderItemAmt, Customer_Id) ('TV', 1,1)
Kiểm tra dữ liệu trong bảng bằng cách sử dụng truy vấn Chọn
Cách tạo Ràng buộc khóa ngoại với ON DELETE SET NULL trong SQL Server |
Hãy xóa hàng khỏi Bảng tham chiếu (Bảng cột khóa chính) và kiểm tra xem bản ghi có còn tồn tại trong Bảng mẹ (Bảng ràng buộc khóa ngoại) hay không và giá trị cột được cập nhật thành Null.
> --Xóa Bản ghi khỏi Bảng được Tham chiếu (Bảng Cột PK) Xóa khỏi dbo.Customer trong đó CustomerId =1
Cách sử dụng tùy chọn ON DELETE SET NULL với Ràng buộc khóa ngoại trong SQL Server |
Như chúng ta có thể thấy rằng bản ghi bị xóa khỏi Bảng tham chiếu (Bảng cột khóa chính) nhưng vẫn hiện diện trong Bảng mẹ (Bảng ràng buộc khóa ngoại) nhưng giá trị được cập nhật thành Null như mong đợi.
Video Demo:Cách tạo Ràng buộc khóa ngoại với tùy chọn ON DELETE SET NULL trong SQL Server