2012-06-20 9 views
14

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

ALTER TABLE dbo.tbltest 
ALTER COLUMN ID uniqueidentifier 

लेकिन यह त्रुटि

ओपेरैंड प्रकार संघर्ष फेंकता है: bigint uniqueidentifier के साथ असंगत है

उत्तर

23

निम्न चरणों का पालन: -

1) .Firstly मेज से पुराने डेटा को हटा दें।

2)। ALTER TABLE dbo.tbltest
ALTER COLUMN ID varchar(200)

3) का उपयोग करें। अब फिर से ALTER TABLE dbo.tbltest
ALTER COLUMN ID uniqueidentifier

स्पष्ट रूप से, आप एक स्तंभ में संख्यात्मक से परिवर्तित नहीं कर सकते, सीधे UniqueIdentifier को

लेकिन आप सांख्यिक में बदल सकते हैं -> varchar -> uniqueidentifier। इकाई की रूपरेखा का उपयोग कर लोगों को

4

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

+0

मैंने पहले ही तालिका से सभी डेटा हटा दिया था। – Visions

+0

मैं देखता हूं। उस मामले में आप भी करने के लिए इसे बदलने के लिए सक्षम हो सकता है 'बाइनरी (16)' 'bigint' करने के लिए पहली और फिर - परीक्षण नहीं किया लेकिन जहां तक ​​मुझे याद है के रूप में एसक्यूएल सर्वर इस रूप में लंबे समय के रूप में कोई डेटा प्रक्रिया में छोटा कर दिया जा रहा है की अनुमति देता है। – Lucero

3

नोट:
जाहिर है, अगर आप जटिल संबंधों के साथ एक बड़ा डेटाबेस, सभी रिश्तों और ID कॉलम छोड़ने, और उन्हें फिर से जोड़ने एक बड़ी परीक्षा है।

यह अधिक जेनरेट मॉडल (.edmx) को अपडेट करना आसान है।

हां, विजुअल स्टूडियो आपको शिकायत किए बिना डेटा प्रकार अपडेट करने की अनुमति देता है। वास्तव में, जब आप .edmx फ़ाइल को सहेजते हैं, तो संबंधों को सत्यापित किया जाएगा; आपके द्वारा छोड़े गए किसी भी फ़ील्ड में त्रुटियों के रूप में दिखाई देगा।

समाप्त होने के बाद, आप मॉडल से डेटाबेस को पुन: उत्पन्न कर सकते हैं। बूम, किया।

0

तो सिंह के जवाब काम नहीं कर रहा तो आप शायद तालिका ड्रॉप और इसे पुन: करने के लिए है।

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