Op deze manier kunnen we de controle op update forceren.
Stel dat je een tabel als deze hebt
create table UserTest(Id int, IsEnabled bit, [GroupId] int)
Nu willen we controleren of slechts 1 gebruiker is ingeschakeld door [GroupId]
.
Gewoonlijk ziet de beperking er ongeveer zo uit:
ALTER TABLE [dbo].[UserTest] ADD CONSTRAINT CHK_OnlyOneEnabled CHECK (dbo.checkOnlyOne(GroupId)=1)
Deze beperking wordt pas geactiveerd wanneer de record is bijgewerkt nadat u de GroupId
. bijwerkt .
Dus we moeten de beperking forceren om de IsEnabled-kolom te valideren door te doen
ALTER TABLE [dbo].[UserTest] ADD CONSTRAINT CHK_OnlyOneEnabled CHECK (dbo.checkOnlyOne(GroupId, IsEnabled )=1)
Het maakt niet uit of u de IsEnabled-waarde in de functie gebruikt of niet.