在动态sql中声明标量变量,其中参数是动态的

时间:2015-08-19 04:46:53

标签: sql-server

在我正在处理的长存储过程中,我仍然遇到一些动态SQL语法问题。

SET @Columns='OP__DOCID,OP__PARENTID,OP__FOLDERID,'+@ColumnSql
SET @Values='@NEWDOCID,@CLIENTKEY,@CLIENTKEY,'+@ValueSql

SET @sqlCommand= 'INSERT INTO '+@Table+' ('+@Columns+')
                  VALUES ('+@Values+')'

EXEC (@sqlCommand)

@ColumnSql@ValuesSql来自我已经选择的表格中的varchar(MAX)字段,每个@table可以有不同的列和值集合。在我测试@ValuesSql时,它是'@ClientKey,@AdmissionKey,@PgmAdmissionKey'。当我尝试运行上面的代码时,我得到了#34;必须声明标量变量" @ ClientKey"。"信息。现在我想我可以使用sp_executesql,但由于参数不同,我无法将它们硬编码到@params部分。我是否有一些基本的语法错误或解决方法?

0 个答案:

没有答案