CONTEXT_INFO (Transact-SQL) का उपयोग करें . प्रक्रिया में कुछ भी रिकॉर्ड न करने के लिए ट्रिगर को सचेत करने के लिए एक मान सेट करें:
--in the procedure doing the insert/update/delete
DECLARE @CONTEXT_INFO varbinary(128)
SET @CONTEXT_INFO =cast('SkipTrigger=Y'+REPLICATE(' ',128) as varbinary(128))
SET CONTEXT_INFO @CONTEXT_INFO
--do insert/update/delete that will fire the trigger
SET CONTEXT_INFO 0x0
ट्रिगर में CONTEXT_INFO जांचें और निर्धारित करें कि आपको कुछ करने की आवश्यकता है या नहीं:
--here is the portion of the trigger to retrieve the value:
IF CAST(CONTEXT_INFO() AS VARCHAR(128))='SkipTrigger=Y'
BEGIN
--log your data here
END
किसी के लिए सिर्फ एक दुष्ट डालने/अपडेट/डिलीट करने के लिए उन्होंने CONTEXT_INFO सेट नहीं किया होगा और ट्रिगर परिवर्तन रिकॉर्ड करेगा। यदि आपको लगता है कि दुष्ट कोड CONTEXT_INFO का भी उपयोग करने का प्रयास करेगा, तो आप CONTEXT_INFO में डाले गए मान, जैसे तालिका नाम या @@ SPID, आदि के साथ फैंसी प्राप्त कर सकते हैं।