परिदृश्य:
आप बंधक कंपनी के लिए SQL सर्वर डेवलपर के रूप में काम कर रहे हैं। स्कीमा छोड़ने के लिए आपको SQL स्क्रिप्ट तैयार करने की यह आवश्यकता है। आप उपयोग करते हैंस्कीमा योजना का नाम छोड़ें
डेवलपमेंट में स्टेटमेंट SQL सर्वर इंस्टेंस और गेट नीचे एरर।
स्कीमा नहीं छोड़ सकता '', क्योंकि यह मौजूद नहीं है या आपके पास अनुमति नहीं है।
आपके अगले कदम क्या होंगे?
समाधान:
उपरोक्त त्रुटि के दो कारण हो सकते हैं। एक, आपको वास्तव में स्कीमा छोड़ने की अनुमति नहीं है। आपने DBA से जाँच की और उसने पुष्टि की कि आपके पास यह परिवर्तन करने के लिए सभी अनुमतियाँ हैं। अब आपने इस पर और गौर किया और देखा कि टेबल, व्यू आदि जैसी वस्तुएं हैं जो इस स्कीमा का उपयोग कर रही हैं।यहां से आप दो समाधान प्रस्तावित कर सकते हैं।
1) सभी वस्तुओं को छोड़ दें स्कीमा से संबंधित और फिर स्कीमा छोड़ें (ऐसे परिदृश्य हो सकते हैं जहां कोई इस स्कीमा और वस्तुओं का उपयोग कर रहा था। अब किसी को भी स्कीमा और इससे संबंधित वस्तुओं का उपयोग करने की आवश्यकता नहीं है। इसलिए आप अपनी टीम के साथ चर्चा करेंगे और यदि वे कहते हैं कि वस्तुओं और स्कीमा के लिए ड्रॉप स्क्रिप्ट तैयार करें। आप ड्रॉप ऑब्जेक्ट स्क्रिप्ट जेनरेट करने के लिए ऑब्जेक्ट एक्सप्लोरर डिटेल विंडो का उपयोग कर सकते हैं।
2) आप वस्तुओं को रखना चाहते हैं और उन्हें अलग-अलग स्कीमा में ले जाना चाहते हैं। शायद डीबीओ या कोई नई स्कीमा। स्थानांतरित करने के बाद ऑब्जेक्ट्स, आप स्कीमा को हटाना चाहते हैं।
नीचे क्वेरी का उपयोग वस्तुओं को स्थानांतरित करने के लिए स्क्रिप्ट उत्पन्न करने के लिए किया जा सकता है।
Declare @SourceSchema VARCHAR(100) Declare @DestinationSchema VARCHAR(100) SET @SourceSchema='TB' SET @DestinationSchema='dbo' Select 'Alter Schema ['+@DestinationSchema+'] Transfer '+@SourceSchema+'.['+name+']'
from sys.objects where schema_name(schema_id)=@SourceSchema
उत्पन्न स्क्रिप्ट की प्रतिलिपि बनाएँ और फिर डेटाबेस में चलाएँ। एक बार हो जाने के बाद, अब आप स्कीमा स्कीमा नाम छोड़ें . का उपयोग करके स्कीमा को छोड़ सकते हैं कथन।