sqlserver存储过程拼接sql语句,执行报错“列名无效”

今天写存储过程,遇到一个问题,具体如下:

需求是要统计一张报表,这张表的列不固定,因此在存储过程里做插入语句的时候,就用到了sql语句拼接再执行。

这里拼接的insert语句是

set @sql= 'insert into ##tn(prj) values('+@pzid+')'
		

如果按照上述语句执行就会报错“列名无效”;

改为

set @sql= 'insert into ##tn(prj) values('+char(39)+@pzid+char(39)+')'

加上char(39)这样就可以了。

至于为什么加char(39),后来我上网查了相关资料,知道这是ASCII码值,表示单引号。

到此问题解决,以上是我遇到的问题,做个笔记,仅供参考。

    原文作者:46haha
    原文地址: https://blog.csdn.net/u012995995/article/details/79699717
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞