我有一系列非常相似的任务:
从c中选择a,b
在另一个表中查找并更改 b 列中的值。
将新值保存回 c,如果不匹配,则将结果发送到错误表。
这部分非常简单,并在此处进行了说明:
Source ==> Lookup =match=> SQL Update command
=No match=> SQL Save Error command
(希望你明白我的意思 - 但它有效!)
我现在必须重复多次,其中我的 source-sql 发生了变化。所以我想做的是在源代码前面插入一个脚本组件,并将我的 User::Sql 变量设置为:
Variables.Sql = "SELECT d, e FROM f"
以上所有内容都包含在数据流中。当我创建一个后,我可以复制那个,只更改脚本中的 Sql 变量,然后它应该一切正常。
我的问题是:当我插入脚本命令时,它会询问我它是源脚本、目标脚本还是转录脚本。并且仅通过设置变量,它不会产生任何输出行,也无法连接到我的源。
有人知道怎么做吗?
(我已经简化了上面的内容。我实际上想更新多个变量并在我的 Source、Lookup 和 Error 更新中使用它们 - 因此仅仅更改初始 Source 中的 SQL 脚本并不简单!但是能够做到以上几点,我就能实现我想要的:-))
最佳答案
在执行数据流之前,您应该在控制流中设置包含 SQL 查询的变量。
然后您需要将该变量用作数据流中的表达式。您可以参数化查找中使用的查询或数据流的任何其他参数。
如果您的数据流确实始终具有相同的结构,您甚至可以生成一个查询列表并在循环中调用您的数据流任务,从而防止重复执行相同的任务。
关于sql - SSIS 脚本组件 - 仅用于更改变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25710423/