在我正在处理的长存储过程中,我仍然遇到一些动态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
部分。我是否有一些基本的语法错误或解决方法?