关于动态执行sql语句出现

Posted 无心风雨的落叶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于动态执行sql语句出现相关的知识,希望对你有一定的参考价值。

如例:  

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#语言一致,谨记~~

以上是关于关于动态执行sql语句出现的主要内容,如果未能解决你的问题,请参考以下文章

关于动态生成SQL语句的简单实现

[MySQL]关于mysql的命令语句执行mysql的脚本文件。如下图,想知道为啥会出现这样的问题~应该要怎么解决

动态SQL基础概念复习(Javaweb作业5)

Mybatis超强大的动态SQL大全

Mybatis超强大的动态SQL大全

mysql function动态执行不同sql语句