有没有办法改变Sql Server中现有十进制列的精度?
答案 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)
转到企业经理,设计表,点击您的字段。
制作小数列
在底部的属性中有一个精确属性