Sql 提高大型表的货币字段精度

Sql 提高大型表的货币字段精度,sql,sql-server-2008,decimal,currency,sqldatatypes,Sql,Sql Server 2008,Decimal,Currency,Sqldatatypes,我有一个巨大的数据表(2亿多条记录),其中存储了我们使用Money数据类型的现金金额。我需要将这个字段的精度提高到8个左右的小数点 现在我可以走了 ALTER TABLE CashTable ALTER COLUMN Cash decimal(23,8) null 不过,我想知道是否有人知道这将如何执行,以及是否存在数据丢失的风险 感谢幕后工作,这将为每一行添加一个新的固定长度列,因此,如果您需要将此作为在线操作来执行,以降低锁定开销并减少事务大小,如果我是您,我只需显式执行此操作 ALTER

我有一个巨大的数据表(2亿多条记录),其中存储了我们使用Money数据类型的现金金额。我需要将这个字段的精度提高到8个左右的小数点

现在我可以走了

ALTER TABLE CashTable ALTER COLUMN Cash decimal(23,8) null
不过,我想知道是否有人知道这将如何执行,以及是否存在数据丢失的风险


感谢幕后工作,这将为每一行添加一个新的固定长度列,因此,如果您需要将此作为在线操作来执行,以降低锁定开销并减少事务大小,如果我是您,我只需显式执行此操作

ALTER TABLE CashTable ADD COLUMN Cash2 decimal(23,8) null
然后添加一个
INSERT
UPDATE
触发器,使
Cash2
Cash
列保持同步,并批量更新新列

同步整个表时,删除原始列并重命名新列。希望您没有任何依赖于列顺序的代码


不存在数据丢失的风险,因为这可以处理罚款范围(
-922337203685477.5808
922337203685477.5807
)。

您需要在线执行此操作,还是有维护窗口可以执行此操作?数据库的恢复模式是什么?