INSERT deleted values into a table before DELETE with a DELETE TRIGGER INSERT deleted values into a table before DELETE with a DELETE TRIGGER sql-server sql-server

INSERT deleted values into a table before DELETE with a DELETE TRIGGER


Your problem is: this trigger fires AFTER the delete has already happened. So there is no more row in HashTags which you could join on!

You need to use this trigger instead:

ALTER TRIGGER [dbo].[HashTags_BeforeDelete]    ON [dbo].[HashTags]    FOR DELETEAS  BEGIN    INSERT INTO HashTagsArchive(Id, HashTagId, delete_date)       SELECT            d.Id, d.HashTagId, GETUTCDATE()        FROM deleted d   ENDGO

The Deleted pseudo table contains the whole row(s) that were deleted - no need to join on anything...

Also: this trigger fires after the delete has happened - so you don't need to do anything yourself, inside the trigger - just insert those bits of information into your archive table - that's all. Everything else is handled by SQL Server for you.