2008-09-23 34 views

回答

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

只要把decimal(precision, scale),與你期望的值替換精度和範圍。

我還沒有用表中的數據做過任何測試,但是如果你改變了精度,如果新精度較低,你將會丟失數據。

-1

去企業經理,設計表,點擊你的領域。

在底部做一個十進制列

在屬性有一個精密財產

+3

這將重新創建表。 – 2008-09-23 09:49:34

+1

在這種情況下,不要那樣做:p – qui 2008-09-23 10:07:53

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 

這是基於SQL Server 2008 R2的測試,但應該SQL Server的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);