मैं Sql सर्वर में एक दशमलव कॉलम की सटीकता को कैसे बदल सकता हूं?


जवाबों:


157
ALTER TABLE Testing ALTER COLUMN TestDec decimal(16,1)

सीधे शब्दों में कहें decimal(precision, scale), अपने वांछित मूल्यों के साथ सटीक और पैमाने की जगह।

मैंने तालिका में डेटा के साथ इसका कोई परीक्षण नहीं किया है, लेकिन यदि आप सटीकता में परिवर्तन करते हैं, तो नई सटीक कम होने पर आप डेटा खोने के अधीन होंगे।


2
दशमलव (18,2) से दशमलव (18,3) के लिए सटीकता बढ़ाते समय यह मेरे लिए काम करता है।
रेबेका

धन्यवाद, इतना सरल, अभी भी खोजना मुश्किल है।
फिलिप लावोई

यदि आपके पास एक 16 (कुल) अंक संख्या है और आप पैमाने को बढ़ाते हैं, तो क्या यह 2 नए दशमलव स्थानों के लिए जगह बनाने के लिए उच्च-क्रम के अंकों पर होगा? दुर्भाग्य से मैं इस समय परीक्षण नहीं कर सकता।
user420667

12
अपने स्वयं के प्रश्न का उत्तर देने के लिए, मैंने एक sqlfiddle: sqlfiddle.com/# ! -3/ 4b8cb/ 1/0 बनाया । इसका उत्तर यह है कि दशमलव (18,2) को दशमलव (18,3) में बदलने से तालिका में परिवर्तन करते समय त्रुटि होगी। दशमलव (18,2) से दशमलव (19,3) हालांकि काम करना चाहिए।
user420667

12

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

अर्थात्:

ALTER TABLE MyTable ADD NewColumnName DECIMAL(16, 2);
GO

UPDATE  MyTable
SET     NewColumnName = OldColumnName;
GO

ALTER TABLE CONTRACTS DROP COLUMN OldColumnName;
GO


EXEC sp_rename
    @objname = 'MyTable.NewColumnName',
    @newname = 'OldColumnName',
    @objtype = 'COLUMN'
GO

यह SQL Server 2008 R2 पर परीक्षण किया गया था, लेकिन SQL Server 2000+ पर काम करना चाहिए।


0
ALTER TABLE (Your_Table_Name) MODIFY (Your_Column_Name) DATA_TYPE();

आपके लिए समस्या:

ALTER TABLE (Your_Table_Name) MODIFY (Your_Column_Name) DECIMAL(Precision, Scale); 

-2
ALTER TABLE `tableName` CHANGE  `columnName` DECIMAL(16,1) NOT NULL;

मैं इस परिवर्तन के लिए उपयोग करता है


-3

एंटरप्राइज मैनेजर, डिजाइन टेबल पर जाएं, अपने क्षेत्र पर क्लिक करें।

एक दशमलव कॉलम बनाएं

तल पर गुणों में एक सटीक संपत्ति है


4
यह तालिका को फिर से बनाएगा।
अलेक्जेंडर कोजेवनिकोव

1
उस स्थिति में, ऐसा न करें: p
qui

मैं उस डिज़ाइन टेबल पेज को कभी नहीं समझ पाया। आप डेटाटाइप के संबंध में किसी भी प्रकार के संपादन नहीं कर सकते, भले ही किसी प्रश्न में ऐसा करने में कोई समस्या न हो। संभवतः, डिज़ाइन पृष्ठ पृष्ठभूमि में प्रश्नों का उपयोग करता है, मुझे समझ में नहीं आता है कि यह सीमा क्यों लागू की गई थी।
फ्लैटर

3
आप इसे इसके माध्यम से अक्षम कर सकते हैं: उपकरण> विकल्प> डिजाइनर - "बचत परिवर्तनों को रोकें जिनके लिए तालिका पुन: निर्माण की आवश्यकता होती है"।
क्रिस मिसल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.