問題は次のとおりです。このトリガーは後に起動します 削除はすでに行われています 。したがって、HashTags
にはこれ以上行がありません 参加できます!
代わりにこのトリガーを使用する必要があります:
ALTER TRIGGER [dbo].[HashTags_BeforeDelete]
ON [dbo].[HashTags]
FOR DELETE
AS
BEGIN
INSERT INTO HashTagsArchive(Id, HashTagId, delete_date)
SELECT
d.Id, d.HashTagId, GETUTCDATE()
FROM deleted d
END
GO
Deleted
疑似テーブルには、行全体が含まれています 削除されました-何にも参加する必要はありません...
また、このトリガーは削除が行われた後に起動します-したがって、トリガー内で自分で何もする必要はありません-アーカイブテーブルにそれらの情報を挿入するだけです-それだけです。それ以外はすべてSQLServerによって処理されます。