首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

报错提示:将 varchar 转换为数据类型 numeric 时出现算术溢出异常

2013-03-01 
报错提示:将 varchar 转换为数据类型 numeric 时出现算术溢出错误declare @D decimal(18, 2)set @D100.98

报错提示:将 varchar 转换为数据类型 numeric 时出现算术溢出错误
declare @D decimal(18, 2)
set @D=100.98
set @sql='UPDATE [dbo].[Money]
    SET [Wage] = '+@D+'where [AuditStateC]=''2'''

以上语句报错:将 varchar 转换为数据类型 numeric 时出现算术溢出错误
是什么原因
[解决办法]
set @sql='UPDATE [dbo].[Money]
    SET [Wage] = '+convert(varchar(20),@D)+'where [AuditStateC]=''2'''
[解决办法]

...+ltrim(@d)+...

[解决办法]
我认为convert好一点
[解决办法]
但是转换会有一定的性能开销,而ltrim只是去掉左边的空格,貌似跟你的问题无关
[解决办法]
引用:
我认为convert好一点


支持
[解决办法]
decimal 的隐式转换的优先级比 varchar 类型高,所以如果不使用显示转换,会把 varchar类型转为 数字类型,这明显 'UPDATE [dbo].[Money] SET [Wage] = ' 是转不成数字的

热点排行