2010-10-19 14 views
5

मैं जानना चाहता हूं कि SQL सर्वर तालिका में बनाए गए और किसी विशिष्ट स्थिति में कॉलम जोड़ने का कोई तरीका है या नहीं ??विशिष्ट स्थान पर SQL सर्वर पर कॉलम जोड़ें?

धन्यवाद।

+2

अफसोस की बात नहीं है, आप देख सकते हैं कि प्रबंधन स्टूडियो आपके कॉलम को जोड़कर और परिवर्तन स्क्रिप्ट की एक प्रति सहेजकर कैसे करता है। – Kane

+1

और आपको अपने आउटपुट के लिए तालिका में कॉलम के क्रम पर भरोसा नहीं करना चाहिए, आप खुद को नाजुक कोड के साथ सेट कर रहे हैं। जैसा कि नीचे बताया गया है, वैकल्पिक सोच के लिए – BlackICE

उत्तर

1

Sql सर्वर प्रबंधन स्टूडियो के साथ आप डिजाइन और खींचें में तालिका खोलने के लिए और स्तंभ ड्रॉप जहां भी आप चाहते

1

केन कहते हैं कर सकते हैं, यह एक सीधा रास्ता में संभव नहीं है। आप देख सकते हैं कि कैसे डिज़ाइन स्टूडियो डिज़ाइन मोड में कॉलम जोड़कर और स्क्रिप्ट स्क्रिप्ट को देखकर करता है।

यदि कॉलम अंतिम स्थिति में नहीं है, तो स्क्रिप्ट मूल रूप से तालिका को छोड़ देती है और इच्छित स्थिति में नए कॉलम के साथ इसे पुन: प्रयास करती है।

2

ऐसा करने का सबसे सुरक्षित तरीका है।

  • सही स्तंभ क्रम
  • कॉपी वर्ष तालिका से डेटा के साथ अपने नए तालिका बनाएं।
  • पुरानी तालिका ड्रॉप करें।
2

ऐसा करने का एकमात्र सुरक्षित तरीका एक नई तालिका (कॉलम के साथ जहां आप चाहते हैं) बना रहा है, डेटा माइग्रेट कर रहा है, मूल तालिका छोड़ रहा है, और नई तालिका को मूल नाम पर नामित कर रहा है।

यह आपके द्वारा कॉलम डालने पर प्रबंधन स्टूडियो आपके लिए करता है।

8

आप प्रबंधन-स्टूडियो में ऐसा कर सकते हैं। परिवर्तन को सहेजने से पहले आप एसक्यूएल-स्क्रिप्ट उत्पन्न करके इसे पूरा करने के तरीके की जांच कर सकते हैं।

  • नई तालिका
  • वर्ष मेज छोड़ने
  • नाम में पुराने से
  • नकल सभी डेटा जोड़ा स्तंभ के साथ एक नई तालिका बनाने सभी विदेशी कुंजी
  • को हटाने: मूल रूप से यह द्वारा हासिल की है पुरानी नाम
  • सभी विदेशी कुंजियों को पुनर्निर्मित करने के लिए नई तालिका
0

सं।

असल में, दृश्यों के पीछे एसएसएमएस तालिका, बाधाओं, आदि की प्रतिलिपि बनायेगा, पुरानी तालिका छोड़ देगा और नया नाम बदल देगा।

कारण सरल है - कॉलम का आदेश नहीं दिया जाता है (न ही पंक्तियां), इसलिए आप हमेशा यह निर्धारित करने के लिए होते हैं कि परिणामस्वरूप आप कौन से कॉलम चाहते हैं (चुनें * एक हैक का थोड़ा सा है)

1

डेटाबेस तालिका कॉलम में ऑर्डर नहीं है।

उचित चयन बयान लिखें और अन्य सभी प्रतिक्रियाओं के अलावा एक दृश्य

5

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

+0

+1 में कॉलम (और उनका ऑर्डर) निर्दिष्ट करें। – Kane

+0

+1 के लिए अपने चयन –

+1

यदि आप एक विशिष्ट कॉलम ऑर्डर चाहते हैं तो ओसीडी पर्याप्त है, तो मुझे लगता है कि आप प्रबंधित करने के लिए अतिरिक्त ऑब्जेक्ट्स को पसंद करेंगे ... – gbn

2

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

कभी भी इस बात की परवाह करने का कोई कारण नहीं है कि कॉलम किस तालिका में हैं, क्योंकि आपको कॉलम ऑर्डर पर भरोसा नहीं करना चाहिए (क्या होगा अगर किसी और ने यह बेवकूफ चीज किया हो?)। कॉलम प्राप्त करने के लिए कोई प्रश्न चुनने के लिए * या सामान्य पदों का उपयोग नहीं करना चाहिए। यदि आप इसे अभी कर रहे हैं, तो यह टूटा हुआ कोड है और तुरंत ठीक होने की आवश्यकता है क्योंकि परिणाम हमेशा अपेक्षित नहीं होने जा रहे हैं। उदाहरण के लिए यदि आप एक कॉलम डालते हैं जहां आप इसे चाहते हैं और कोई अन्य रिपोर्ट के लिए चयन * का उपयोग कर रहा है, तो अचानक भाग संख्या उस स्थान पर दिखाई दे रही है जो मूल्य को पकड़ने के लिए उपयोग की जाती है।

जो भी आप करना चाहते हैं, करके आप कॉलम डालकर ठीक से अधिक तोड़ सकते हैं जहां आप इसे व्यक्तिगत रूप से चाहते हैं। टेबल में कॉलम ऑर्डर हमेशा अप्रासंगिक होना चाहिए। जब भी आप कॉलम को एक अलग क्रम में दिखाना चाहते हैं, तो आपको यह नहीं करना चाहिए।

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