Vấn đề của bạn là:trình kích hoạt này kích hoạt SAU KHI việc xóa đã xảy ra . Vì vậy, không còn hàng nào trong HashTags
mà bạn có thể tham gia!
Bạn cần sử dụng trình kích hoạt này để thay thế:
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
bảng giả chứa (các) hàng toàn bộ đã bị xóa - không cần tham gia vào bất kỳ thứ gì ...
Ngoài ra:trình kích hoạt này kích hoạt sau khi quá trình xóa xảy ra - vì vậy bạn không cần phải tự làm bất cứ điều gì, bên trong trình kích hoạt - chỉ cần chèn các bit thông tin đó vào bảng lưu trữ của bạn - vậy thôi. Mọi thứ khác do SQL Server xử lý cho bạn.