我这样写的
set /p x="" (用户输入)
update 表 set a=a+x where aabb=1234
但是提示将数据类型varchar转换为bigint 时发生错误
写错了 应该是 uadate 表 set a=a+%x% where aabb=1234
表中的字段a是bigint 类型的,字段aabb是varchar 类型的
x 是用户输入的一个数值(比如说100),在这个批处理里面用户输入的x 是数值还是字符呢?
你的X是varchar类型的,所以出错了,
把x转换成int类型再进行加法运算。
还有你的aabb是什么类型的字段?如果是varchar,那么你的1234,应该这样写‘1234’
把x转换成int类型再进行加法运算。
还有你的aabb是什么类型的字段?如果是varchar,那么你的1234,应该这样写‘1234’
温馨提示:答案为网友推荐,仅供参考
第1个回答 2011-07-25
%x%只能用于字符型
试问一个数字加一个字符,得到什么?
数据库类型为bigint,那么当然会出错
试问一个数字加一个字符,得到什么?
数据库类型为bigint,那么当然会出错
第2个回答 2011-07-25
declare @a nvarchar(10)
set @a=1;
select convert(int,@a)
update tb_Users set UserInt=UserInt+(select convert(int,@a)) where Id=1
其实你可以直接定义成int型,就不用再转换格式了!追问
set @a=1;
select convert(int,@a)
update tb_Users set UserInt=UserInt+(select convert(int,@a)) where Id=1
其实你可以直接定义成int型,就不用再转换格式了!追问
还是不明白,x是用户输入的一个数字,要和a相加,a 是bigint 类型的,aabb 是varchar 型的,主要是a怎么和x相加,怎么转换x