有没有办法改变Sql Server中现有小数列的精度?
发布于 2008-09-23 12:58:38
ALTER TABLE Testing ALTER COLUMN TestDec decimal(16,1)
只需放入decimal(precision, scale)
,将精度和小数位数替换为所需的值。
我没有使用表中的数据对此进行任何测试,但如果更改精度,如果新的精度较低,则可能会丢失数据。
发布于 2014-04-06 22:08:59
也许有一种更好的方法,但您始终可以将列复制到新列中,删除它,然后将新列重新命名为第一列的名称。
也就是说:
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 Server2008 R2上测试的,但应该可以在SQL Server 2000+上工作。
发布于 2017-01-30 18:44:22
ALTER TABLE (Your_Table_Name) MODIFY (Your_Column_Name) DATA_TYPE();
对于您的问题:
ALTER TABLE (Your_Table_Name) MODIFY (Your_Column_Name) DECIMAL(Precision, Scale);
https://stackoverflow.com/questions/120083
复制相似问题