2010-08-04 10 views
5

अद्यतन करना मैं एक एमएस एसक्यूएल सर्वर डीबी का उपयोग कर रहा हूं और बहुत सारे विचारों का उपयोग करता हूं (ओ/आर मैपर के साथ उपयोग के लिए)। एक छोटी सी झुंझलाहट है कि मैं चाहता हूँ हैस्कीमाइंडिंग का उपयोग करते समय डीबी स्कीमा अपडेट को कैसे संभालना है और अक्सर

  • उपयोग स्कीमा लिपियों

(सर्वर पर तैनाती और स्रोत नियंत्रण प्रणाली में डालने के लिए), लेकिन इस मुद्दे में चलाने के साथ बंधन

  • अद्यतन कि जब भी मैं उदाहरण देना चाहता हूं किसी तालिका में एक कॉलम जोड़ें, मुझे पहले उस तालिका को संदर्भित करने वाले सभी विचारों को छोड़ना होगा, तालिका अपडेट करें, और फिर दृश्यों को फिर से बनाएं, भले ही विचारों को अन्यथा अद्यतन करने की आवश्यकता न हो। यह मेरी अद्यतन स्क्रिप्ट को बहुत लंबा बनाता है और साथ ही, स्रोत नियंत्रण प्रणाली में भिन्नता को देखता है, यह देखना मुश्किल है कि वास्तविक प्रासंगिक परिवर्तन क्या था।

    क्या इसे संभालने का कोई बेहतर तरीका है?

    मुझे अभी भी सरल और स्रोत-नियंत्रणीय एसक्यूएल अपडेट का उपयोग करने में सक्षम होना चाहिए। SQL सर्वर प्रबंधन स्टूडियो में शामिल कोड जनरेटर सहायक होगा, लेकिन मुझे SQL सर्वर प्रबंधन स्टूडियो के साथ समस्याएं थीं, जिसमें यह कोड बनाने के लिए होता है जो कुछ इंडेक्स या (डिफ़ॉल्ट) बाधाओं के नाम निर्दिष्ट नहीं करता है। लेकिन जब मैं विभिन्न बाधाओं के नाम सहित विभिन्न प्रणालियों पर अपनी स्क्रिप्ट चलाता हूं, तो मैं समान डीबीएस चाहता हूं, ताकि बाद में उन बाधाओं को अपडेट करते समय मुझे लूप से कूदना पड़े।

    तो शायद एक स्मार्ट एसक्यूएल कोड जनरेटर समाधान होगा?

    मेरे कार्यप्रवाह अब है: "। cannot ALTER 'XXX' because it is being referenced by object 'YYY'"

    • प्रकार क्वेरी संपादक में alter table बयान
    • जांच अगर मैं की तरह एक त्रुटि बयान मिलता है
    • उपयोग एसक्यूएल सर्वर प्रबंधन स्टूडियो स्क्रिप्ट के लिए मुझे संदर्भित वस्तु के लिए create कोड
    • एक drop बयान बदलने बयान से पहले डाल सकते हैं और बाद
    • जांच बयान बनाते हैं drop बयान त्रुटि पैदा करता है और दोहराने

    यह मुझे परेशान करता है, लेकिन शायद मुझे इसके साथ रहना होगा यदि मैं स्कीमाइंडिंग और स्क्रिप्ट अपडेट का उपयोग करना जारी रखना चाहता हूं ...

  • उत्तर

    2

    आप कम से कम "जांच सकते हैं कि मैं जी एट ए त्रुटि "कुछ निर्भरता खोजने के लिए कुछ गतिशील प्रबंधन कार्यों और सिस्टम दृश्यों से पूछकर चरण। This article यह कैसे करना है इसका एक सभ्य स्पष्टीकरण देता है। इसके अलावा, मुझे लगता है कि आप सही हैं, आप अपने केक नहीं ले सकते हैं और स्कीमा-बाइंडिंग के साथ भी इसे खा सकते हैं।

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

    +1

    ओह, ठीक है। मुझे लगता है कि मैं इसके साथ रहूंगा। आदर्श रूप से मैं क्या चाहता हूं: ए) कोई त्रुटि संदेश नहीं है यदि तालिका अद्यतन वास्तव में विचारों को प्रभावित नहीं करता है (उदाहरण के लिए एक नया कॉलम जोड़ना इस तालिका पर केवल पढ़ने के विचारों को प्रभावित नहीं करेगा) बी) त्रुटि संदेश यदि तालिका अद्यतन दृश्य तोड़ता है (उदाहरण के लिए एक कॉलम ड्रॉप करना जो दृश्य में उपयोग किया जाता है) लेकिन मुझे लगता है कि एमएसएसएलएल सिर्फ उस तरह से काम नहीं करता है (संभवतः अच्छे कारणों के लिए ...) अनुमति अनुस्मारक के लिए धन्यवाद! –

    संबंधित मुद्दे

     संबंधित मुद्दे