私はこのテーブル構造を持っています:
CREATE TABLE JoiningDate
(
Id INT,
DateofJoining DATETIME,
STATUS VARCHAR(10),
DaysCount INT
)
このテーブルには、DaysCount が NULL 値の 1000 レコードが含まれています。
このテーブルを更新するために、以下のようにトリガーを作成しました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() などのオプションの代わりに使用しようとしましたが、他のすべての行は更新されません。
より迅速なヘルプに感謝します。