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