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

स्वचालित रूप से पदानुक्रम मान उत्पन्न करें

दोनों सवालों के जवाब देने का मेरा तरीका अलग है। मैं आम तौर पर ट्रिगर्स का उपयोग करने से बचता हूं जब तक कि यह अंतिम विकल्प न हो क्योंकि यह डेटाबेस पर अनावश्यक ओवरहेड जोड़ता है।

ट्रिगर और संग्रहीत कार्यविधि के बीच तुलना

  • डेटाबेस में तालिका संबंध, बाधाओं, अनुक्रमित, संग्रहीत प्रक्रिया को देखना आसान है लेकिन ट्रिगर को देखना मुश्किल है।
  • ट्रिगर क्लाइंट-एप्लिकेशन एप्लिकेशन के लिए अदृश्य निष्पादित करते हैं। वे दिखाई नहीं दे रहे हैं या डिबगिंग कोड में पता लगाया जा सकता है।
  • ट्रिगर्स के बारे में भूलना आसान है और यदि कोई दस्तावेज नहीं है तो नए डेवलपर्स के लिए उनके अस्तित्व का पता लगाना मुश्किल होगा।
  • ट्रिगर हर बार चलते हैं जब डेटाबेस फ़ील्ड अपडेट होते हैं और सिस्टम पर यह ओवरहेड होता है। यह सिस्टम को धीमा कर देता है।

पर्याप्त कहा, यही कारण है कि मैं संग्रहित प्रोसेस पसंद करता हूं। आप एजेंट के माध्यम से एक जॉब फ़ाइल बना सकते हैं (उदाहरण के लिए कहें:यह हर 30 मिनट या किसी अन्य समय के बाद निष्पादित होती है)। आप उस जॉब फ़ाइल में सम्मिलन के लिए तर्क का उपयोग कर सकते हैं। इस तरह आपका डेटा tree table . में वास्तविक समय के निकट होगा।

अब एजेंट बनाने के लिए संदर्भ:
http://msdn.microsoft.com/en-us/library/ms191128(v=sql.90).aspx
http://msdn. microsoft.com/en-us/library/ms181153(v=sql.105).aspx



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर में संदर्भित निकाय खोजें:sys.dm_sql_referenced_entities

  2. एसक्यूएल:पिछली पंक्ति मान के साथ खाली कक्षों को कैसे भरें?

  3. Microsoft SQL सर्वर में डेटाबेस को छोड़ना और फिर से बनाना

  4. कॉलम के रूप में ROWS प्राप्त करें (SQL सर्वर डायनेमिक PIVOT क्वेरी)

  5. SQL एजेंट कार्य:निर्धारित करें कि यह कितने समय से चल रहा है