इस तरह की समस्याएं हमें दिखाती हैं कि जो लोग SQL सर्वर बनाते हैं, उन्होंने वास्तव में अपने उत्पाद का उपयोग नहीं किया है। यह इतनी शानदार चूक है कि किसी को आश्चर्य होता है कि उन्हें और क्या करना है जो सही तरीके से भूल गए हैं (मुझे इस तरह के लगभग 30 अन्य मुद्दों की सूची मिली है जो मुझे इस काम को करने के लिए दूर करना होगा क्योंकि अन्य डीबी बाहर करते हैं बॉक्स सहित, इस तथ्य सहित कि हमें पहली जगह में ऐसा करने के लिए एक घटिया विज़ार्ड की आवश्यकता है [अगर मेरे पास समय है तो मैंने इस विज़ार्ड को उसी डीबी के लिए एक ही टेबल को जोड़ने और संलग्न करने के लिए प्रतीक्षा की है, हर बार, वापस ... मैं एक अच्छा छुट्टी के लिए समय होगा])।
मैं बहुत आलसी हूँ और टाइप नहीं करना चाहता EXEC sp_msforeachtable ...
हर बार मैं ऐसा करता हूं। आसपास मेरा काम उत्पादन सर्वर पर बाधाओं को छोड़ने और उन्हें देव सर्वर से हटाने का रहा है। यह त्रुटि को रोकेगा लेकिन इस विधि के कुछ बहुत बड़े दुष्प्रभाव हैं। सबसे पहले, आप अब केवल अपने देव सर्वर पर एक पूर्ण बैकअप बहाल करने में सक्षम नहीं होंगे (जब तक कि आप उन सभी को फिर से हटाने के साथ ठीक नहीं होते)। दूसरा, यह सबसे अच्छा काम करता है जब आप सुनिश्चित होते हैं कि आपके डेटा के उपभोक्ता भी इन बाधाओं को लागू करते हैं (या उनके बारे में परवाह नहीं करते हैं)। मेरे मामले में, हमारे पास केवल एक उपभोक्ता (हमारी वेबसाइट) है, इसलिए हमने इन बाधाओं को साइट कोड में भी बनाया है (यानी उपयोगकर्ता रिकॉर्ड हटाने से पहले हम उस उपयोगकर्ता के लिए सभी फ़ोन रिकॉर्ड हटाते हैं)। हाँ, यह अनिवार्य रूप से पहली जगह में बाधाओं की आवश्यकता की उपेक्षा करता है और उस काम को दोगुना करता है जो मुझे करने की आवश्यकता है लेकिन यह मुझे यह सत्यापित करने का भी मौका देता है कि मेरा कोड DBMS आधारित बाधाओं के साथ या इसके बिना काम करता है (तथ्य यह है कि वे अभी भी ठेस पर हैं सर्वर केवल एक आकस्मिक योजना के रूप में)। आप इसे मेरे डिज़ाइन में एक दोष कह सकते हैं, लेकिन मैं इसे दोषपूर्ण DBMS के लिए समाधान कहूंगा। किसी भी दर पर, यह MSSQL के भीतर कहीं और से ऐसा करना अभी भी तेज और आसान है क्योंकि यह अपने स्वयं के डिजाइन के साथ सामना करने में असमर्थ है।
sp_msforeachtable
(औरsp_MSForEachDb
) अनिर्दिष्ट और असमर्थित है। आपको इसका उपयोग करने से बचना चाहिए। यह तालिकाओं को छोड़ सकता है !! > - @AaronBertrand से यह पोस्ट देखें sqlblog.com/blogs/aaron_bertrand/archive/2010/12/29/... और इस कनेक्ट आइटम - (एमएस संकेत नहीं होते कि वे इसे ठीक) -> connect.microsoft.com/SQLServer / प्रतिक्रिया / विवरण / 264677 /…