मैं Float
(शून्य) से Varchar(25)
(शून्य) से तालिका में कॉलम में डेटाटाइप बदलने की कोशिश कर रहा हूं। वर्तमान डेटा में सबसे बड़ी फ्लोट 12 अंकों है, लेकिन भविष्य में अधिक अंक जोड़े जाने पड़ सकते हैं, इसलिए varchar(25)
।एसक्यूएल कनवर्टिंग कॉलम प्रकार फ्लोट से वर्कर
कॉलम में वर्तमान डेटा फोन नंबर है। परिवर्तन शून्य से पहले अनुमति देने के लिए किया जाना चाहिए।
हालांकि, मुझे कुछ कठिनाइयों का सामना करना पड़ रहा है।
ALTER TABLE Customer
ALTER COLUMN Phonenumber varchar(25)
यह मैं वांछित परिणाम नहीं दे करता है:
मैं निम्नलिखित की कोशिश की है।
- एक नया (अस्थायी) स्तंभ
PhonenumberVarchar
- बनाना एक स्तंभ से परिवर्तित और डेटा को कॉपी:
उदाहरण
1549779498
के लिए यह की तर्ज में1.54978e+009
तो मैं कोशिश की है कुछ हो जाता है दूसरे
- पुराने कॉलम को हटाकर
- पुराने कॉलम को नए कॉलम का नाम बदलना
कोड:
ALTER TABLE Customer
ADD PhonenumberVarchar varchar(25)
UPDATE Customer
SET PhonenumberVarchar = STR(Phonenumber, 12, 0)
ALTER TABLE Customer
DROP COLUMN Phonenumber
EXEC sp_rename 'Customer.PhonenumberVarchar', 'Phonenumber', 'COLUMN'
यह या तो काम नहीं करता:
Subquery 1 से अधिक मान दिया। यह अनुमति नहीं है जब subquery =,! = <, < =,>,> = या जब subquery अभिव्यक्ति के रूप में प्रयोग किया जाता है।
और अब यह देर हो चुकी है और मेरे सिर में दर्द ...
किसी को भी मदद कर सकते हैं?
नोट:
मेज, बल्कि बड़ी है कुछ 15 लाख पंक्तियाँ, तो प्रदर्शन एक मुद्दा हो सकता है।
SQL सर्वर का उपयोग करना।
ऐसा लगता है कि यह काम करता है। तो अगर मैं सही ढंग से समझता हूं कि दशमलव रूपांतरण के साथ चाल पहले यह सुनिश्चित करने के लिए है कि राउंडिंग त्रुटियों को मैं सीधे nvarchar का उपयोग कर प्राप्त कर दूं? – user2110298
@ user2110298। । । हां, हालांकि मुझे यकीन नहीं है कि वे वास्तव में त्रुटियों को गोल कर रहे हैं। रूपांतरण के लिए उपयोग किया गया प्रतिनिधित्व वह नहीं है जो आप चाहते हैं, और यह उस मुद्दे के आसपास अपेक्षाकृत सरल तरीका है। –