【问题标题】:Azure Logic Apps 'Execute SQL Query' ConnectorAzure 逻辑应用“执行 SQL 查询”连接器
【发布时间】:2018-09-30 03:33:34
【问题描述】:

我正在尝试实现几个查询/更新 Azure SQL Server 数据库的 Azure 逻辑应用。查询返回一个值或一个包含多行的表。我不喜欢创建存储过程,而是使用“执行 SQL 查询”连接器。我的查询在逻辑应用程序中运行良好,但我还没有找到一种方法来提取查询的输出以在后续步骤中使用,或者在 HTTP 响应中返回。

有人可以指导我如何为单值和表格输出做到这一点吗?

【问题讨论】:

标签: sql azure azure-sql-database azure-logic-apps


【解决方案1】:

如果由于某种原因您不想创建 SP,或者无法创建,您可以在 JSON 中使用它来访问您的自定义查询结果:

@body('Name_of_Execute_SQL_Query_step')?['resultsets']['Table1'][0]['NameOfYourColumn']

如果您找不到数据的确切“路径”,请运行并让它失败。然后检查失败的步骤,在“显示原始输出”中,您将能够看到执行 SQL 查询步骤的结果。例如:

{
  "OutputParameters": {},
  "ResultSets": {
    "Table1": [
      {
        "Date": "2018-05-28T00:00:00"
      }
    ]
  }
}

要访问该日期,您当然需要使用:

@body('Name_of_Execute_SQL_Query_step')?['resultsets']['Table1'][0]['Date']

【讨论】:

  • 完美运行
  • 你会认为微软网站上的某个地方会有一些明确的文档。不是我能找到的。谢谢@Andrew
  • @PBMe_HikeIt 伙计,我认为在某些时候 MS 在他们的文档中提到了它......我觉得它曾经是 MS 不是最先进的,但有据可查,如果你想最先进的话是无证的开放性疮。现在都是开放性疮。
【解决方案2】:

出于多种原因,存储过程总是更好,并且连接器可以合理地推断出输出。这就是存储过程输出在设计器中亮起的原因。

执行 SQL 操作返回“未键入”的内容,这就是您在设计器中看不到特定元素的原因。

要像存储过程输出一样使用 Execute SQL 输出,您必须自己定义 JSON Schema,并使用 Parse JSON Action 来点亮 SQL 输出。

【讨论】:

  • 谢谢。我将在哪一步定义 JSON 模式?它会在逻辑应用程序中吗?或者你的意思是我应该定义 SQL Query 直接返回 JSON 输出然后解析它?
  • @DavidRuiz 非常清楚,它更容易、更可靠、更易于维护并且使用存储过程。它也会表现得更好。为什么你不想使用 SP?
  • 我明白了。问题是我可能并不总是有权在这个数据库中创建存储过程,所以我希望能够在不依赖于存储过程的情况下使用 SQL 查询。
  • @DavidRuiz 当你不得不跨过那座桥时……你可能不会。现在,做正确的事,只有在没有其他选择的情况下才妥协。
  • @Johns-305 您能否详细说明您所说的使用存储过程时性能更好的意思?
猜你喜欢
  • 1970-01-01
  • 2021-06-14
  • 1970-01-01
  • 2020-05-01
  • 2021-04-25
  • 1970-01-01
  • 2015-08-10
  • 1970-01-01
  • 2020-03-20
相关资源
最近更新 更多