【问题标题】:Use SQL Field in SSIS Variable在 SSIS 变量中使用 SQL 字段
【发布时间】:2020-04-17 17:53:53
【问题描述】:

是否可以在 SSIS 变量中引用 SQL 字段?

例如,我想使用下面“表格”中的字段

Select '999999' AS Physician_Profile_ID

在此处作为动态变量(在我们的示例中名为“CMSPhysProID”)

我计划将多个 ID 连接到一个 In 语句中。

【问题讨论】:

  • 您是否尝试使用表达式将动态 SQL 命令传递给源?或者您需要将列的值存储在变量中?
  • 我需要将列的值存储在一个变量中,以便可以在另一个变量中引用它。

标签: sql sql-server ssis etl expressionbuilder


【解决方案1】:

可以通过执行 sql 任务来实现


在执行 SQL 任务的左侧面板中,常规选项卡


1.选择结果集为单行
2.连接类型 ole db
3。设置连接并形成 SQL 语句,正如您提到的 Select '999999' AS Physician_Profile_ID
4.转到左侧面板中的结果集
5。将变量添加到要存储“999999”的位置
6. 单击确定

【讨论】:

    【解决方案2】:

    如果您希望将值存储在变量中以供以后使用,您可以简单地使用带有单行结果集的执行 SQL 任务。以下文章中的更多详细信息:

    如果您希望在导入数据时添加计算列,则必须在数据流任务中使用派生列转换来添加基于另一列的列,有关此组件的更多详细信息,请参阅以下文章:

    【讨论】:

      【解决方案3】:

      您想通过将 ID 连接到“IN”语句中来达到什么目的?如果想法是使用 ID 的值来限制结果,作为动态 WHERE 子句,您可能会更好地使用查找您维护的具有所需 ID 的表,甚至是包中生成的静态列表带有脚本任务。 (如果你可以使用查找表方法,维护起来会容易得多,因为你只需要更新一个表,而不是你的源代码。)

      或者,您甚至可以通过联接来实现目标。从您要保留的配置文件 ID 创建一个临时表并加入其中,或者再次将其用作查找组件。使用 IN 动态创建 where 子句会慢很多,维护起来也很麻烦。

      【讨论】:

      • 我尝试使用 Where 子句创建 URL 字符串。例如,"https://openpaymentsdata.cms.gov/resource/bqf5-h6wd.json?$where="+ @[User::PhysicianProfileIDs] + "&$limit=100000" 字符串然后在 Script Component Code 中使用
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-22
      • 2012-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多