आपकी समस्या यह है:यह ट्रिगर बाद में सक्रिय होता है हटाना पहले ही हो चुका है . इसलिए 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
छद्म तालिका में संपूर्ण पंक्ति(पंक्तियां) . है जिन्हें हटा दिया गया था - किसी भी चीज़ में शामिल होने की आवश्यकता नहीं है...
साथ ही:यह ट्रिगर डिलीट होने के बाद सक्रिय होता है - इसलिए आपको ट्रिगर के अंदर स्वयं कुछ भी करने की आवश्यकता नहीं है - बस उन सूचनाओं के बिट्स को अपनी संग्रह तालिका में डालें - बस इतना ही। बाकी सब कुछ आपके लिए SQL सर्वर द्वारा नियंत्रित किया जाता है।