У меня есть таблица, в которой рассчитывается общий вычет и оставшийся вычет за предыдущий месяц.
И любое обновление в оставшемся вычете старого месяца должно повлиять на порядок следующих месяцев, поэтому я создалтриггер AFTER UPDATE
для этой таблицы, но я заметил, что триггер не вызывается UPDATE
в течение следующего месяца.
Проверьте код триггера
CREATE TRIGGER [dbo].[tgUpdateRemainingBalance]
ON [dbo].[GAT_MONTHLY_DEDUCTION]
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
DECLARE @OldTotalDeduction INT
DECLARE @NewTotalDeduction INT
DECLARE @OldRemainingToNextMonth INT
DECLARE @NewRemainingToNextMonth INT
SELECT @OldRemainingToNextMonth = RemainingToNextMonth,
@OldTotalDeduction = TotalDeduction
FROM DELETED
SELECT @NewRemainingToNextMonth = RemainingToNextMonth,
@NewTotalDeduction = TotalDeduction
FROM INSERTED
DECLARE @EmpNo BIGINT
DECLARE @RegDate DATETIME
SELECT @EmpNo = PersonnelNo, @RegDate = RegDate FROM INSERTED
IF (@OldRemainingToNextMonth <> @NewRemainingToNextMonth) OR (@OldTotalDeduction <> @NewTotalDeduction)
BEGIN
UPDATE GAT_MONTHLY_DEDUCTION
SET TotalDeduction = TotalDeduction - @OldRemainingToNextMonth + @NewRemainingToNextMonth,
Visited = 1
WHERE RegDate = DATEADD(month, 1, @RegDate) AND PersonnelNo = @EmpNo
END
END
Iя делаю обновление для той же таблицы, в которой есть эти триггеры, но вызов триггера в первый раз должен вызвать триггер снова для следующего обновления, но это не происходит.
Мне необходимо знать, как решить проблему.это.
Спасибо