如例:
DECLARE @sql NVARCHAR(max); DECLARE @longid BIGINT =100; SET @sql='select '+@longid;
执行之后提示 从数据类型 varchar 转换为 bigint 时出错。
刚开始以为是要输出bigint类型,但是sql动态执行无法识别,于是改成了
SET @sql='select '+CONVERT(BIGINT,@longid);
但是还是报同样的错误,后面试用这种方法就没有问题了
SET @sql='select '+CONVERT(NVARCHAR,@longid);
说明了,在动态语句中,我们设置的@sql的类别为varchar,于是在字符串相加的时候,也该将其他类型转化为字符串,否则会报错。
跟C#语言一致,谨记~~