【问题标题】:What is FX symbol on the ssis execute sql task ssis 2012?ssis 执行 sql 任务 ssis 2012 上的 FX 符号是什么?
【发布时间】:2023-03-11 17:25:01
【问题描述】:

这在 SSIS 2008 中没有。执行 sql 任务上的这个 FX 符号是什么? 似乎这被认为是一个参数。有没有这方面的好文章?

谁能告诉我这个有什么用:

【问题讨论】:

  • “公式”,通常。
  • 这是否意味着在运行时动态传递它!?
  • 是的,这意味着它是在运行时从表达式生成的。

标签: tsql ssis ssis-2012


【解决方案1】:

虽然符号是新的,但概念是在 SSIS 2008 中:它仅表示特定任务或组件具有使用 SSIS Expression 设置的一个或多个属性,而不是显式硬编码。

来自文档:

在 SQL Server Data Tools (SSDT) 中,接下来会显示一个特殊的图标标记 到具有表达式集的连接管理器、变量和任务 在他们。 HasExpressions 属性适用于所有 SSIS 对象 支持表达式,但变量除外。该物业 使您能够轻松识别哪些对象具有表达式。

【讨论】:

    【解决方案2】:

    要以 Kyle 的回答为基础,右键单击执行 SQL 任务并选择属性。在属性窗口中,找到表达式并展开 +。在此之下,您将看到使用表达式设置的所有属性。

    我喜欢使用表达式,它们使静态包更加灵活并且能够响应变化。但是,表达式的缺点是您无法调试它们。如果在 Execute SQL Task 上放置断点,则看不到表达式的计算结果。

    在我的简单示例中,它没有发生任何事情,因此很容易解析表达式的计算结果。但是,如果我有这样的事情......

    "SELECT * FROM " @[User::TableName] + " AS X WHERE X.DayOfWeek ='" + (DATEPART("dw", GETDATE()) == 1 ? "Sunday" : DATEPART("dw", GETDATE()) == 2 ? "Monday" :
    DATEPART("dw", GETDATE()) == 3 ? "Tuesday" : DATEPART("dw", GETDATE()) == 4 ? "Wednesday" :
    DATEPART("dw", GETDATE()) == 5 ? "Thursday" : DATEPART("dw", GETDATE()) == 6 ? "Friday" :
    DATEPART("dw", GETDATE()) == 7 ? "Saturday" : "InvalidDay") + "';"
    

    祝你心理分析好运。

    如果我在 SSIS 变量中完成所有工作,我发现在调试复杂表达式方面会更成功。在上面的示例中,我将创建一个名为 Query 的 String 类型的变量。然后我会在变量上使用上面的表达式。然后我将 SqlStatementSource 设置为 @[User::Query] 而不是在任务中执行逻辑。最终结果是相同的,除了现在如果事情表现得“有趣”,我可以在任务上设置一个断点,然后检查我的变量的值,因为它已经过评估。这是一个细微但重要的区别。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多