如何更改Sql Server中十进制列的精度?

时间:2008-09-23 09:42:57

标签: sql-server

有没有办法改变Sql Server中现有十进制列的精度?

5 个答案:

答案 0 :(得分:132)

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

只需添加decimal(precision, scale),将精度和比例替换为所需的值。

我没有对表中的数据进行任何测试,但是如果你改变了精度,如果新的精度较低,你将会丢失数据。

答案 1 :(得分:7)

可能有更好的方法,但您始终可以将列复制到新列中,将其删除并将新列重命名为第一列的名称。

以机智:

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 +。

答案 2 :(得分:1)

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

对你来说问题:

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

答案 3 :(得分:0)

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

我使用This进行改动

答案 4 :(得分:-1)

转到企业经理,设计表,点击您的字段。

制作小数列

在底部的属性中有一个精确属性