有没有办法改变Sql Server中现有十进制列的精度?
ALTER TABLE Testing ALTER COLUMN TestDec decimal(16,1)
只需将decimal(precision, scale)
精度和比例替换为所需的值即可.
我没有对表格中的数据进行任何测试,但是如果你改变了精度,如果新的精度较低,你将会丢失数据.
可能有更好的方法,但您始终可以将列复制到新列中,删除它并将新列重命名为第一列的名称.
以机智:
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+.