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

xiaoxiao2021-02-28  21

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

需求是要统计一张报表,这张表的列不固定,因此在存储过程里做插入语句的时候,就用到了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码值,表示单引号。

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

转载请注明原文地址: https://www.6miu.com/read-1450357.html

最新回复(0)