Kami dapat memaksa pemeriksaan pembaruan dengan cara ini.
Misalkan Anda memiliki tabel seperti ini
create table UserTest(Id int, IsEnabled bit, [GroupId] int)
Sekarang, kami ingin memeriksa hanya 1 pengguna yang diaktifkan dengan [GroupId]
.
Biasanya kendala akan terlihat seperti
ALTER TABLE [dbo].[UserTest] ADD CONSTRAINT CHK_OnlyOneEnabled CHECK (dbo.checkOnlyOne(GroupId)=1)
Batasan ini tidak akan dipicu selama catatan telah diperbarui sampai Anda memperbarui GroupId
.
Jadi, kita harus memaksakan batasan untuk memvalidasi kolom IsEnabled dengan melakukan
ALTER TABLE [dbo].[UserTest] ADD CONSTRAINT CHK_OnlyOneEnabled CHECK (dbo.checkOnlyOne(GroupId, IsEnabled )=1)
Tidak masalah jika Anda menggunakan atau tidak nilai IsEnabled ke dalam fungsi.