>ALTER TRIGGER [CheckOut_Update] ON [dbo].[dspRunD] >FOR UPDATE >AS >SET NOCOUNT ON >DECLARE @Drv_CD CHAR(4), @UserOut VARCHAR(25), @UserIn VARCHAR(25), @Invoice_No CHAR(8) >DECLARE @COut BIT, @CIn BIT, @FKey INT, @PKey INT >DECLARE @Route_CD CHAR(2), @Run_Time DATETIME, @Trans_Note VARCHAR(100) > >SELECT @Invoice_No = Invoice_No, @COut = Checkout, @CIn = Checkin, @FKey = RunH_FK, @PKey = PKey > FROM Inserted >print 'Trigger - ' + @Invoice_No >SELECT @Drv_CD = Drv_CD, @UserOut = CheckOut_User, @UserIn = CheckIn_User, > @Route_CD = Route_CD, @Run_Time = Run_Time > FROM dspRunH WHERE PKey = @FKey >SET @Trans_Note = 'Run ' + @Route_CD + ' ' + CAST(@Run_Time AS CHAR(20)) > >--Checkout transaction >IF UPDATE(Checkout) > IF @COut = 1 > EXEC usp_dsp_Invoice_Trans @Invoice_No, 'CHECKOUT', @Drv_CD, @Trans_Note, @UserOut > ELSE > EXEC usp_dsp_Invoice_Trans @Invoice_No, 'CHECKOUT_UNDO', @Drv_CD, @Trans_Note, @UserOut > >--Checkin transaction >IF UPDATE(Checkin) AND @CIn = 1 > EXEC usp_dsp_Invoice_Trans @Invoice_No, 'CHECKIN', @Drv_CD, @Trans_Note, @UserIn >>
>UPDATE dspRunD SET CheckOut = 1 where RunH_FK = 236 >>the trigger should fire 3 times, right?
PRINT 'Trigger - ' + @Invoice_Noprints only once. Why?
SELECT @Invoice_No = Invoice_No, @COut = Checkout, @CIn = Checkin, @FKey = RunH_FK, @PKey = PKey FROM Insertedto
SET @Invoice_No = '' SELECT @Invoice_No = @Invoice_No + CAST(Invoice_No as varchar(50))+CHAR(13), @COut = Checkout, @CIn = Checkin, @FKey = RunH_FK, @PKey = PKey FROM Inserted print 'Trigger - ' + @Invoice_No