行の開始日から終了日までの期間である「期間」列を更新するために、テーブルにトリガーを設定しようとしています。ただし、列を挿入/更新するたびに、SCOPE_INDENTITY() が null を返し続けるため、トリガーは機能しません。どうすればこれを修正できますか?
ALTER TRIGGER [dbo].[CalcDuration]
ON [dbo].[Event]
AFTER INSERT, UPDATE, DELETE
AS
DECLARE @STARTED datetime
DECLARE @FINISHED datetime
DECLARE @ID int
SELECT @ID = SCOPE_IDENTITY()
SELECT @STARTED = [Date & Time Started] FROM dbo.Event WHERE [Event ID] = @ID
SELECT @FINISHED = [Date & Time Finished] FROM dbo.Event WHERE [Event ID] = @ID
UPDATE dbo.Event
SET Duration = DATEDIFF ( hour, @STARTED, @FINISHED )
WHERE [Event ID] = @ID