Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

लॉगऑन ट्रिगर को छोड़ने का प्रयास करते समय "ट्रिगर नहीं छोड़ सकता" त्रुटि? इसे इस्तेमाल करे।

क्या आप SQL सर्वर में लॉगऑन ट्रिगर छोड़ने का प्रयास कर रहे हैं, लेकिन आपको निम्न की तरह एक त्रुटि मिल रही है?

"ट्रिगर 'ट्रिगर_नाम' को नहीं छोड़ सकता, क्योंकि यह मौजूद नहीं है या आपके पास अनुमति नहीं है।"

ऐसा इसलिए हो सकता है क्योंकि आपके पास ON ALL SERVER मौजूद नहीं है तर्क।

जब आप लॉगऑन ट्रिगर बनाते हैं, तो आप ON ALL SERVER . का उपयोग करते हैं बहस।

आप इस तर्क का उपयोग डीडीएल ट्रिगर्स के साथ भी कर सकते हैं। यह तर्क ट्रिगर के दायरे को वर्तमान सर्वर पर लागू करता है।

जब आप ऐसे ट्रिगर्स (यानी लॉगऑन ट्रिगर्स, और डीडीएल ट्रिगर्स को छोड़ते हैं जो ON ALL SERVER के साथ बनाए गए थे। ), आपको ON ALL SERVER . का भी उपयोग करना चाहिए ।

त्रुटि का उदाहरण

मैंने हाल ही में यह गलती खुद की है। मेरे मामले में, मैं इस तरह एक लॉगऑन ट्रिगर छोड़ने की कोशिश कर रहा था:

DROP TRIGGER trg_limit_concurrent_sessions;

लेकिन इसके परिणामस्वरूप निम्न त्रुटि हुई:

Cannot drop the trigger 'trg_limit_concurrent_sessions', because it does not exist or you do not have permission.

मैं उलझन में था, क्योंकि मैंने ही ट्रिगर बनाया था। वास्तव में, मैंने इसे पहले उसी सत्र में बनाया था!

लेकिन तब मुझे अपनी गलती का एहसास हुआ।

समाधान

समाधान आसान था - बस ON ALL SERVER संलग्न करें मेरे कोड के लिए।

DROP TRIGGER trg_limit_concurrent_sessions ON ALL SERVER;

परिणाम:

Commands completed successfully.

मुझे उम्मीद है कि अगर आपको भी ऐसी ही त्रुटि का सामना करना पड़ा है तो इस लेख ने मदद की है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल सर्वर 2008 प्रबंधन स्टूडियो मेरी क्वेरी के सिंटैक्स की जांच नहीं कर रहा है

  2. स्व-संदर्भ तालिका के लिए कैस्केड हटाएं

  3. SQL सर्वर कर्सर प्रकार - KEYSET कर्सर | SQL सर्वर ट्यूटोरियल / TSQL ट्यूटोरियल

  4. SQL सर्वर (T-SQL उदाहरण) में 'डेटाटाइम' को 'डेटाटाइमऑफ़सेट' में बदलें

  5. चालू वर्ष की पहली और आखिरी तारीख कैसे प्राप्त करें?