改错sql语句???
表结构如下:a1,a2都为numeric(18,6)格式的数据
a1 a2
现在执行sql语句
update tab_ set a2=a1+a1*0.08 where id=1
报错:将 numeric 转换为数据类型 numeric 时出现算术溢出错误。
求解??
------解决方案--------------------试试:
SQL code
update tab_ set a2=a1+convert(numeric(18,6),(a1*0.08)) where id=1
------解决方案--------------------
a1+a1*0.08,将a1*0.08,或者a1+a1*0.08格式化一下
------解决方案--------------------
根据你的错误是超长截断
所以我估计你的数据在修改操作的时候产生了超出范围的数据
你检查下 a1的值,如果a1+a1*0.08会产生超过小数点左边12位长度的值,则肯定会报这个错误
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
数据超长所致
------解决方案--------------------
update tab_ set a2=convert(numeric(18,6),(a1*1.08)) where id=1