2
나는 전월의 총 공제액과 나머지 공제액을 계산하는 테이블을 가지고 있습니다.방아쇠의 동일한 테이블을 업데이트하십시오.
이전 달의 나머지 공제액의 업데이트는 다음 달에 다음 달에 영향을 미쳐야하므로이 테이블에 대해 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
나는이 다음 업데이트를 다시 트리거를 호출해야 처음으로 트리거를 호출 제외한 트리거가 같은 테이블에 대한 업데이트하고있는 중이 야하지만이 발생하지 않습니다.
해결 방법을 알아야하는 것이 시급한 과제입니다.
감사
조심하는
에 오신 것을 환영합니다 : 당신은 코드, XML 또는 데이터 샘플을 게시하는 경우 ** ** 텍스트 편집기에서 해당 줄을 강조 표시하고 편집기 도구 모음에서 "코드 샘플"단추 ('{}) '를 클릭하여 멋지게 형식을 지정하고 구문을 강조 표시하십시오! –
성취하고자하는 바를 더 잘 전달할 수 있습니까? 매달 변경된 달 이후에 TotalDeduction을 업데이트하려고하지만 트리거 내에서 트리거를 트리거 할 수없는 것 같습니다. 지금 작성된 방식은 이후 업데이트를 위해 트리거가 호출 되더라도 다음 달에만 업데이트됩니다. 변경된 유일한 필드는 TotalDeduction 및 Visited이며 RemainingToNextMonth는 변경되지 않았기 때문에 다음 업데이트를 제외하고 변경 사항이 없습니다. 방문한 깃발을 위해. – Peter