Auf diese Weise können wir die Überprüfung auf Aktualisierung erzwingen.
Nehmen wir an, Sie haben eine Tabelle wie diese
create table UserTest(Id int, IsEnabled bit, [GroupId] int)
Jetzt wollen wir überprüfen, ob nur 1 Benutzer durch [GroupId]
aktiviert ist .
Normalerweise sieht die Einschränkung in etwa so aus
ALTER TABLE [dbo].[UserTest] ADD CONSTRAINT CHK_OnlyOneEnabled CHECK (dbo.checkOnlyOne(GroupId)=1)
Diese Einschränkung wird nicht ausgelöst, wenn der Datensatz aktualisiert wurde, bis Sie die GroupId
aktualisieren .
Also müssen wir die Einschränkung erzwingen, um die IsEnabled-Spalte zu validieren, indem wir Folgendes tun
ALTER TABLE [dbo].[UserTest] ADD CONSTRAINT CHK_OnlyOneEnabled CHECK (dbo.checkOnlyOne(GroupId, IsEnabled )=1)
Egal, ob Sie den IsEnabled-Wert in der Funktion verwenden oder nicht.