2014-11-27 4 views
5

से SQL तालिका में किसी कॉलम के डेटा प्रकार को कैसे बदलें, मैंने int के रूप में बनाई गई तालिका के कॉलम में से एक का डेटा प्रकार असाइन किया है। मेरी समस्या यह है कि जब मैं इसके खिलाफ कोई क्वेरी चलाता हूं तो यह दशमलव स्थान नहीं दिखा रहा है।पूर्णांक से दशमलव

मैं इस कॉलम के डेटा प्रकार को कैसे सही करूं ताकि यह दशमलव स्थानों को स्वीकार कर सके?

तालिका dbo.Budget है और संबंधित कॉलम को ROE कहा जाता है।

+0

तालिका पहले से ही डेटा है या नहीं? – HaveNoDisplayName

+0

'तालिका बदलें dbo.Budget कॉलम ROE दशमलव (परिशुद्धता, स्केल) ' –

+0

संभावित डुप्लिकेट [डेटा खोने के बिना SQL सर्वर डेटाबेस में कॉलम डेटाटाइप को कैसे बदलें] (http://stackoverflow.com/questions/5136013/how- टू-चेंज-कॉलम-डेटाटाइप-इन-एसक्यूएल-सर्वर-डेटाबेस-बिना खोने वाले डेटा) – Tanner

उत्तर

11

आसान - सिर्फ इस SQL ​​विवरण

ALTER TABLE dbo.Budget 
ALTER COLUMN ROE DECIMAL(20,2) -- or whatever precision and scale you need..... 

चलाने दशमलव संख्या में वास्तव में क्या सटीक, पैमाने और लंबाई हैं पर freely available MSDN documentation देखें और क्या मूल्यों की पर्वतमाला संभव

+3

सावधान रहें: यदि आपने उस कॉलम पर 'न्यूल' नहीं किया है, तो आपको इसे कथन में भी निर्दिष्ट करना होगा, अन्यथा यह होगा अब नल स्वीकार करें – przno

0

आप इस सरल निष्पादित कर सकते हैं कर रहे हैं एसक्यूएल स्टेटमेंट

Alter table yourtable 
Alter Column yourtable_column Decimal(10,2) 

आप जो कुछ भी चाहते हैं वह दशमलव परिशुद्धता और स्केल सेट कर सकते हैं।

यदि तालिका में कोई डाटा नहीं है, या कि बहुत ज्यादा नहीं है, तो सरल ALTER TABLE बयान (अन्य उत्तर यहाँ में वर्णित है) ठीक है:

1

बस इस स्पष्ट रूप से कहा है।

लेकिन, यदि बहुत सारे डेटा (तालिका के आकार के आधार पर लाखों पंक्तियां, या संभवत: कम) और/या तालिका पर बहुत अधिक विवाद है और पूर्ण डाउनटाइम/रखरखाव विंडो के लिए अधिक अवसर नहीं है , तो इसके लिए एक अलग दृष्टिकोण की आवश्यकता होती है, जैसे मैंने इस उत्तर में वर्णित किया: Narrowing the Data Types on a very large table

0

उस कॉलम के डेटाटाइप को बदलें .. लेकिन सामान्य एसक्यूएल में चन्ने की अनुमति नहीं होगी। यह आपको उस कॉलम को छोड़ने के लिए संकेत देगा .. उस चीज़ को प्राप्त करने के लिए सेटिंग है।
टूल-ऑप्शन-डिज़ाइनर-टेबल और डेटाबेस डिज़ाइनर पर जाएं और अनचेक सेविंग विकल्प को अनचेक करें। मैं abt sql सर्वर 2008R2 enter image description here

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