首页 文章

Azure Logic Apps 'Execute SQL Query'连接器

提问于
浏览
1

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

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

2 回答

  • 3

    如果由于某种原因您不想创建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']
    
  • 2

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

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

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

相关问题