Azure Logic Apps'执行SQL查询'连接器

时间:2018-04-19 15:02:45

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

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

有人可以指导我如何对单值和表输出进行此操作吗?

2 个答案:

答案 0 :(得分:6)

如果由于某种原因您不想创建SP,或者无法创建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']

答案 1 :(得分:2)

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

执行SQL操作返回'无类型'内容,这就是您在设计器中看不到特定元素的原因。

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