我试图在数据库中添加另一个小数点,并且在Microsoft SQL Server Management Studio(2014)中不断收到此错误。该列当前是数字(9,2)NULL,我想将其更改为数字(9,3)NULL。无论是通过代码还是设计者,它都不会允许我这样做。将数字(9,2)转换为数字(9,3)时的算术溢出错误
ALTER TABLE LOG ALTER COLUMN WEIGHT numeric(9, 3) NULL
-- Arithmetic overflow error converting numeric to data type numeric.
阅读了几个线程后,我没有设法找到这个问题的答案。由于我只是让这个领域变得更大,所以在理论上应该没有截断问题或类似问题。
表中最大值为1102439.00,最小值为0.00。不是一个NULL。
因为你最大的值长度为'9'和你想它的规模定义为'3 '这是它的长度为'10'数字,为了避免这种情况尝试定义NUMERIC(10,3),这可以解决你的问题 –
@JaydipJ这实际上解决了我的问题。 – Danieboy
为了提供更多关于解决方案的信息:您不是让字段更大,而只是移动小数点。任何9位数字都会失败,例如1102439.00,因为这将需要是1024位长度的1102439.000。 –