Click here to Skip to main content
15,891,943 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
CREATE TRIGGER [dbo].[trStudentlMealPlanUpdate]
ON [dbo].[tblStudent]
FOR UPDATE
AS
BEGIN
IF @@ROWCOUNT = 0 RETURN;
SET NOCOUNT ON;
IF UPDATE(lMealPlan)
BEGIN
DECLARE @NewValue INT, @OldValue INT;
SET @NewValue = (SELECT lMealPlan FROM Inserted);
SET @OldValue = (SELECT lMealPlan FROM Deleted);
IF @NewValue <> @OldValue
BEGIN
INSERT INTO tblMealPlanChange (dIDNumber, lMealPlan, lOldMealPlan, lMealsThisPeriod, lOldMealsThisPeriod, dtDate)
VALUES(
(SELECT dIDNumber FROM Inserted),
(SELECT lMealPlan FROM Inserted),
(SELECT lMealPlan FROM Deleted),
(SELECT lMealsThisPeriod FROM Inserted),
(SELECT lMealsThisPeriod FROM Deleted),
GETDATE()
);
RETURN;
END
END
END

GO

What I have tried:

CREATE TRIGGER [dbo].[trStudentlMealPlanUpdate]
ON [dbo].[tblStudent]
FOR UPDATE
AS
BEGIN
IF @@ROWCOUNT = 0 RETURN;
SET NOCOUNT ON;
IF UPDATE(lMealPlan)
BEGIN
DECLARE @NewValue INT, @OldValue INT;
SET @NewValue = (SELECT lMealPlan FROM Inserted);
SET @OldValue = (SELECT lMealPlan FROM Deleted);
IF @NewValue <> @OldValue
BEGIN
INSERT INTO tblMealPlanChange (dIDNumber, lMealPlan, lOldMealPlan, lMealsThisPeriod, lOldMealsThisPeriod, dtDate)
VALUES(
(SELECT dIDNumber FROM Inserted),
(SELECT lMealPlan FROM Inserted),
(SELECT lMealPlan FROM Deleted),
(SELECT lMealsThisPeriod FROM Inserted),
(SELECT lMealsThisPeriod FROM Deleted),
GETDATE()
);
RETURN;
END
END
END

GO
Posted
Updated 20-Nov-16 10:07am

1 solution

you need to create a cursor on the Inserted/Deleted and walk through that
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900