Chúng tôi có thể buộc kiểm tra cập nhật theo cách này.
Giả sử bạn có một bảng như thế này
create table UserTest(Id int, IsEnabled bit, [GroupId] int)
Bây giờ, chúng tôi muốn kiểm tra chỉ 1 người dùng được kích hoạt bởi [GroupId]
.
Thông thường, ràng buộc sẽ giống như
ALTER TABLE [dbo].[UserTest] ADD CONSTRAINT CHK_OnlyOneEnabled CHECK (dbo.checkOnlyOne(GroupId)=1)
Ràng buộc này sẽ không được kích hoạt trên bản ghi đã được cập nhật cho đến khi bạn cập nhật GroupId
.
Vì vậy, chúng ta phải buộc ràng buộc xác thực cột IsEnabled bằng cách thực hiện
ALTER TABLE [dbo].[UserTest] ADD CONSTRAINT CHK_OnlyOneEnabled CHECK (dbo.checkOnlyOne(GroupId, IsEnabled )=1)
Không thành vấn đề nếu bạn sử dụng hay không sử dụng giá trị IsEnabled vào hàm.