我正在 SSIS 中开发 ETL 解决方案。但是,我对使用 Visual Studio 的 SSIS 工具箱执行动态 SQL 的方式有疑问。 我有一个数据流,在比较两个表中加载的数据(Stage Vs Dw_bi)后,添加或编辑行和列,使信息 100% 匹配。
我必须加载的数据,有许多列是固定的,它们不会改变,但还有另一部分列可能会随着时间而改变。从这个意义上讲,插入到中的列不会总是相同的。为了尽可能自动执行此任务,我使用动态 SQL 创建了一个查询,该查询从名为参数的表中提取与变化的列部分相对应的那些列,以构建仅采用必要列的动态查询。当我在 SQL Management Studio 中运行这段代码时,运行没有任何问题并正确执行。但是,当我尝试将相同的代码放入 SSIS 的 OLEDB COMMAND 任务中时,出现以下错误:
代码使用@SQL等变量语句创建为字符串,然后用EXEC子句sp_executesql @sql执行。此外,有必要使用定义的参数?在查询运行时获取,使代码更加动态。例如,这使得结果具有不同的列数和不同的类型。
所以,我想弄清楚如何在 SSIS 中运行动态代码,而无需使用
WITH RESULT SETS()
子句定义结果集。也就是说,结果集,就像在管理工作室中发生的那样,应该采用与查询数据相同的结构,而不需要在带有结果集子句的结构中显式。
我正在尝试弄清楚如何在 SSIS 中运行动态代码,而无需使用 WITH RESULT SETS() 子句定义结果集。也就是说,结果集,就像在管理工作室中发生的那样,应该采用与查询数据相同的结构,而不需要在带有结果集子句的结构中显式。