2008-09-23 8 views

उत्तर

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

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

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

+1

यह मेरे लिए काम करता है जब दशमलव (18,2) से दशमलव (18,3) के लिए परिशुद्धता बढ़ाना। – Junto

+0

धन्यवाद, आपको इतना आसान, अभी भी ढूंढना मुश्किल है। –

+0

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

-1

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

तल पर एक दशमलव स्तंभ

गुण में बनाओ एक सटीक संपत्ति

+3

इस तालिका में फिर से पैदा करेगा। –

+1

उस स्थिति में, तब ऐसा न करें: पी – qui

+0

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

3

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

बुद्धि को

:

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 

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

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

मैं alterration

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

आप समस्या के लिए के लिए इस का उपयोग करता है:

ALTER TABLE (Your_Table_Name) MODIFY (Your_Column_Name) DECIMAL(Precision, Scale); 
संबंधित मुद्दे