我正在尝试在 SSIS 中执行动态查询。
当我尝试以下语句时
EXECUTE(@dynamicquery)
它抛出错误并建议使用WITH RESULT SETS
但在我的情况下,结果模式也是动态的
EXECUTE(@query) WITH RESULT SETS ((@resultsschema));
这不是正确的语法。
有没有其他方法可以解决这个问题?
我正在尝试在 SSIS 中执行动态查询。
当我尝试以下语句时
EXECUTE(@dynamicquery)
它抛出错误并建议使用WITH RESULT SETS
但在我的情况下,结果模式也是动态的
EXECUTE(@query) WITH RESULT SETS ((@resultsschema));
这不是正确的语法。
有没有其他方法可以解决这个问题?
您需要改变您的方法并找到 SSIS 为我们提供的正确方法。根据您的问题,我假设您想使用仅在执行时根据变量值知道的 SQL 语句来执行 DML 语句。我建议你使用表达式(执行 SQL 任务 -> 表达式 -> SQLStatement)。这也假设您想在工作流中执行此操作,而不是数据流。但是,数据流中的动态 SQL 并没有太大的不同。
请查看以下文章,该文章提供了数据流中的动态表达式示例,然后是控制流中的另一篇文章:http ://www.sqlsafety.com/?p=266