Tình huống:
Trong các bài viết trước, chúng tôi biết rằng nếu chúng tôi có Ràng buộc khóa ngoại với cài đặt mặc định và chúng tôi cố gắng cập nhật giá trị trong cột trong Bảng tham chiếu được sử dụng làm Cột tham chiếu trong Ràng buộc khóa ngoại, chúng tôi sẽ gặp lỗi. Chúng tôi đã thảo luận nhiều cách để xử lý tình huống, vui lòng kiểm tra liên kết này.Ràng buộc khóa ngoại cung cấp tùy chọn để đặt hành động Xếp tầng, chúng tôi có thể tạo Ràng buộc khóa ngoại bằng Cập nhật xếp tầng.
Nếu cài đặt Cập nhật xếp tầng được sử dụng, khi chúng tôi cập nhật giá trị trong Bảng tham chiếu, nó cũng sẽ cập nhật giá trị trong cột bảng mẹ (Bảng khóa ngoại).
Hãy kiểm tra kịch bản này. Tạo hai bảng dbo.Customer và dbo.Orders có Mối quan hệ khóa ngoài bằng tập lệnh đã cho
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)
Hãy 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 Cập nhật tầng trong SQL Server |
Hãy chạy câu lệnh cập nhật của chúng tôi trên CustomerId trong bảng dbo.Customer và xem nó có cập nhật giá trị cột trong dbo.Orders cho Customer_id hay không.
update dbo.Customer set Customerid=100
Hãy kiểm tra lại dữ liệu trong bảng của chúng ta
Cách bật Cập nhật xếp tầng với Ràng buộc khóa ngoại trong SQL Server |
Như chúng ta có thể thấy rằng giá trị cũng được cập nhật trong cột dbo.Orders.Customer_id. Video giới thiệu
:Cách tạo Ràng buộc khóa ngoại với CASCADE BẬT CẬP NHẬT trong SQL Server