add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE [dbo].[log] ( id INT, code INT, last_updated DATETIME )

IF NOT EXISTS (SELECT 1 FROM sys.columns WHERE Name=N'active_date' AND OBJECT_ID = OBJECT_ID(N'[dbo].[Log]'))
ALTER TABLE [dbo].[Log] ADD active_date DATETIME NULL
SELECT * FROM log
id code last_updated active_date
CREATE TRIGGER dbo.log__set_active_date
ON dbo.log
AFTER INSERT, UPDATE
AS
BEGIN
SET NOCOUNT ON;

UPDATE
log
SET
active_date = INSERTED.last_updated
FROM
dbo.log
INNER JOIN
INSERTED
ON log.id = INSERTED.id
WHERE
INSERTED.code = 10
AND log.active_date IS NULL
END
INSERT INTO log (id, code, last_updated) VALUES (1, 0, GETDATE());
SELECT * FROM log;
id code last_updated active_date
1 0 2021-08-20 21:20:36.463 null
WAITFOR DELAY '00:00:00.1'
INSERT INTO log (id, code, last_updated) VALUES (2, 10, GETDATE());
SELECT * FROM log;
id code last_updated active_date
1 0 2021-08-20 21:20:36.463 null
2 10 2021-08-20 21:20:36.587 2021-08-20 21:20:36.587
UPDATE log SET code = 10 WHERE id = 1;
SELECT * FROM log;
id code last_updated active_date
1 10 2021-08-20 21:20:36.463 2021-08-20 21:20:36.463
2 10 2021-08-20 21:20:36.587 2021-08-20 21:20:36.587
WAITFOR DELAY '00:00:00.1'
UPDATE log SET code = 0, last_updated = GETDATE();
SELECT * FROM log;
id code last_updated active_date
1 0 2021-08-20 21:20:36.697 2021-08-20 21:20:36.463
2 0 2021-08-20 21:20:36.697 2021-08-20 21:20:36.587
UPDATE log SET code = 10;
SELECT * FROM log;
id code last_updated active_date
1 10 2021-08-20 21:20:36.697 2021-08-20 21:20:36.463
2 10 2021-08-20 21:20:36.697 2021-08-20 21:20:36.587