读书人

改错sql话语?

发布时间: 2012-11-09 10:18:48 作者: rapoo

改错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位长度的值,则肯定会报这个错误

[解决办法]
探讨

试试:
SQL code
update tab_ set a2=a1+convert(numeric(18,6),(a1*0.08)) where id=1

[解决办法]
探讨
根据你的错误是超长截断
所以我估计你的数据在修改操作的时候产生了超出范围的数据

你检查下 a1的值,如果a1+a1*0.08会产生超过小数点左边12位长度的值,则肯定会报这个错误

[解决办法]
数据超长所致
[解决办法]

update tab_ set a2=convert(numeric(18,6),(a1*1.08)) where id=1

读书人网 >SQL Server

热点推荐