我有这个表结构:
CREATE TABLE JoiningDate
(
Id INT,
DateofJoining DATETIME,
STATUS VARCHAR(10),
DaysCount INT
)
该表填充了 1000 条 DaysCount 为 NULL 值的记录。
我为该表创建了如下触发器来更新DaysCount
。每当更新DateOfJoining
或Status
列时,DaysCount
应在触发器中计算并自动更新。
这是触发器的轮廓:
CREATE TRIGGER [dbo].[trigger_JoiningDate]
ON [dbo].[JoiningDate]
AFTER INSERT, UPDATE
AS
BEGIN
DECLARE @Id INT
DECLARE @DateJoining DATETIME
DECLARE @Result INT
SELECT @Id = Id,
@DateJoining = DateofJoining,
FROM INSERTED
SET @Result = [Formula To Calculate Days]
UPDATE JoiningDate
SET DaysCount = @Result
WHERE Id = @Id
END
我能够看到单个记录的计数得到更新。但是对于批量更新,它只更新第一条记录。
在 stackoverflow 的帮助下,我尝试使用而不是触发器、TRIGGER_NESTLEVEL() 等选项,但其他所有行仍然没有得到更新。
更快的帮助表示赞赏。