gpt4 book ai didi

sql-server-2012 - 更改 SQL Server 2014 中现有十进制列的精度会导致错误

转载 作者:行者123 更新时间:2023-12-02 08:25:59 24 4
gpt4 key购买 nike

我在几个表中有几个十进制列,我需要将它们从 decimal(9, 4) 扩展到 decimal(9, 5)。不幸的是,我尝试的每一种方法都出现以下错误。到目前为止,我已尝试使用 SQL Server Management Studio 中的设计更改它并运行查询:

alter table xxx 
alter column xxx decimal (9,5) not null

错误是一样的:

Msg 8115, Level 16, State 8, Line 1
Arithmetic overflow error converting numeric to data type numeric.

这些是许多存储过程和应用程序中使用的大型重要表,因此我想避免添加新列和复制数据。每个表有 250K 到 500K 行。

如有任何想法,我们将不胜感激。谢谢!

最佳答案

这是因为您在更改数据类型时减少了有效数字的数量。如果您有任何行的值为 100,000 或更大,它将不适合新大小。如果您想增加小数位数(比例),您还需要将精度增加 1。

alter table xxx alter COLUMN xxx decimal (10,5) not null

请注意,这将使每行的存储要求增加 4 个字节。存储要求将从 5 个字节增加到 9 个字节。

https://msdn.microsoft.com/en-us/library/ms187746.aspx

关于sql-server-2012 - 更改 SQL Server 2014 中现有十进制列的精度会导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32122818/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com