我正在尝试在我的数据库中添加另一个小数点,并且我在Microsoft SQL Server Management Studio(2014)中不断收到此错误。该列当前是数字(9,2)NULL,我想将其更改为数字(9,3)NULL。无论是代码还是设计师,它都不允许我这样做。
ALTER TABLE LOG ALTER COLUMN WEIGHT numeric(9, 3) NULL
-- Arithmetic overflow error converting numeric to data type numeric.
在阅读了几个主题之后,我找不到这个问题的答案。由于我只是把这个领域做得更大,理论上应该没有截断问题或类似问题。
表中最大值为1102439.00,最小值为0.00。不是一个NULL。
答案 0 :(得分:1)
答案 1 :(得分:1)
由于您的最大值长度为9
,并且您尝试将其比例定义为3
,这使得其长度为10位数,而NUMERIC(9,3)
中未包含该值,
从NUMERIC(P,S)
开始,
P是精确度,显示总位数
S是Scale,表示小数后的总位数
为了避免这种情况,请尝试定义NUMERIC(10,3)
,这可能会解决您的问题