CREATE TRIGGER SETDEFAULT ON dbo.ss_Description FOR INSERT, UPDATE AS DECLARE @llDefault bit IF UPDATE(lDefault) BEGIN SELECT @llDefault = lDefault FROM Inserted IF @llDefault = 1 BEGIN UPDATE ss_Description SET lDefault = 0 WHERE lDefault = 1 AND cFilter = (SELECT cFilter FROM Inserted) AND ID <> (SELECT ID FROM Inserted) END ENDThe buzz word I was looking for is INSERTED (This is where my current record is stored)
IF EXISTS (SELECT name FROM sysobjects > WHERE name = N'trig_test' AND type = 'TR') > DROP TRIGGER trig_test >GO >CREATE TRIGGER trig_test >ON dbo.TestTr >FOR INSERT, UPDATE >AS >DECLARE @UpdateCount int >IF UPDATE(IsDefault) >BEGIN > SELECT @UpdateCount = COUNT(*) FROM Inserted > WHERE IsDefault > 0 > IF @UpdateCount > 1 > BEGIN > RAISERROR ('Only one item can be IsDefault', 16, 1) > ROLLBACK TRANSACTION > END ELSE > -- > IF @UpdateCount = 1 > BEGIN > UPDATE TestTr SET IsDefault = 0 > WHERE IsDefault = 1 > AND id <> (SELECT id FROM Inserted) > END >END >>
>>Table Test >> >>ID DESCRIPTION DEFAULT >>1 Apple 0 >>2 Banana 0 >>3 Carrot 0 >>4 Citrus 1 >>