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

सर्वर में सभी डेटाबेस के लिए संदर्भ संग्रहीत कार्यविधियाँ

यह प्रश्न पहले से ही SO पर कई बार पूछा जा चुका है, लेकिन दिलचस्प बात यह है कि सर्वोत्तम उत्तर के बारे में कोई सहमति नहीं है। तो यहां विभिन्न लोगों द्वारा सुझाए गए मुख्य विकल्पों का सारांश दिया गया है (बिना किसी विशेष क्रम के):

  1. इसे मास्टर डेटाबेस में sp_ के साथ रखें उपसर्ग ताकि SQL सर्वर इसे पहले वहां ढूंढे
  2. इसे मॉडल डेटाबेस में रखें, ताकि यह स्वचालित रूप से सभी नए डीबी में जुड़ जाए
  3. केवल 'वैश्विक' प्रक्रियाओं (और अन्य वस्तुओं) के लिए एक डेटाबेस बनाएं और तीन-भाग नामकरण का उपयोग करके उन्हें कॉल करें
  4. 3 के रूप में, लेकिन अन्य डेटाबेस में समानार्थी शब्द बनाएं ताकि आपको तीन-भाग के नामकरण की आवश्यकता न हो
  5. एकाधिक डेटाबेस में परिनियोजन को प्रबंधित करने के लिए वाणिज्यिक या स्व-विकसित टूल का उपयोग करें
  6. 5 के रूप में, लेकिन एक डेटाबेस में परिनियोजित करें, फिर diff डेटाबेस और अन्य डेटाबेस पर परिनियोजित करने के लिए भिन्न स्क्रिप्ट लागू करें

मेरी राय में, 1 एक गैर-स्टार्टर है क्योंकि Microsoft स्पष्ट रूप से कहता है आपको मास्टर डेटाबेस में ऑब्जेक्ट नहीं बनाना चाहिए। 2 अच्छा लगता है लेकिन व्यवहार में डेटाबेस को स्क्रैच (YMMV) से बनाए जाने की तुलना में अधिक बार पुनर्स्थापित या कॉपी किया जाता है, इसलिए मॉडल का उपयोग करना अविश्वसनीय है।

3 और 4 तालिकाओं और विचारों के लिए अच्छे हैं, लेकिन निष्पादन संदर्भ संग्रहीत कार्यविधियों और कार्यों के लिए एक समस्या हो सकती है। लेकिन यह प्रक्रियाओं में तर्क पर निर्भर करता है और यह आपके मामले में व्यावहारिक हो सकता है।

लेकिन 1-4 सभी में संभावित समस्या है कि यदि आपके पास केवल एक वस्तु है, तो आपके पास उस वस्तु का केवल एक संस्करण है, और परीक्षण के लिए या अलग-अलग ग्राहकों के लिए अलग-अलग डीबी में अलग-अलग संस्करण उपलब्ध होना अक्सर उपयोगी होता है।

5 और 6 एक ही विषय पर भिन्नताएं हैं और मुझे व्यक्तिगत रूप से यह सबसे अच्छा तरीका लगता है क्योंकि परिनियोजन एक समस्या है जिसे आपको वैसे भी हल करना है, इसलिए आप इसे भी कर सकते हैं और सुनिश्चित कर सकते हैं कि आपके पास ज्ञान, उपकरण और प्रक्रियाएं हैं। नियंत्रित, स्वचालित तरीके से किसी भी डेटाबेस में कोड को साफ और शीघ्रता से परिनियोजित करने में सक्षम होने के लिए।



  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 सर्वर 2017 में संबंध बनाएं

  2. SQL सर्वर में पिछले महीने का पहला और आखिरी दिन (टाइमस्टैम्प के साथ) कैसे प्राप्त करें

  3. 'ऑफसेट' के पास गलत सिंटैक्स। एंटिटी फ्रेमवर्क कोर में FETCH स्टेटमेंट में NEXT विकल्प का अमान्य उपयोग

  4. SQL सर्वर में लेफ्ट पैडिंग – 3 LPAD () समकक्ष

  5. टी-एसक्यूएल का उपयोग कर सीमांकक चार का उपयोग करके स्ट्रिंग को कैसे विभाजित करें?