Azure 在SQL连接器中使用存储过程?

Azure 在SQL连接器中使用存储过程?,azure,stored-procedures,azure-api-apps,azure-sql-database,azure-logic-apps,Azure,Stored Procedures,Azure Api Apps,Azure Sql Database,Azure Logic Apps,业务问题:每天一次,我们希望从数据库中读取多行(具有特定条件),对这些行进行迭代,并向该行中的电子邮件发送电子邮件,然后更新该行,说明电子邮件已发送(以防止每天或一天多次向此人发送电子邮件) 我们所有的数据库、服务器、wep应用程序等都在使用windows azure。鉴于我们有应用程序服务,我们开始研究这个问题,并考虑创建一个逻辑应用程序 简单逻辑应用程序流:重复(每天一次)=>SqlConnector(StoredProcedure或select语句)=>Foreach行(emailapi(

业务问题:每天一次,我们希望从数据库中读取多行(具有特定条件),对这些行进行迭代,并向该行中的电子邮件发送电子邮件,然后更新该行,说明电子邮件已发送(以防止每天或一天多次向此人发送电子邮件)

我们所有的数据库、服务器、wep应用程序等都在使用windows azure。鉴于我们有应用程序服务,我们开始研究这个问题,并考虑创建一个逻辑应用程序

简单逻辑应用程序流:重复(每天一次)=>SqlConnector(StoredProcedure或select语句)=>Foreach行(emailapi(row.email)=>SqlConnector(Update行))

并发症:

逻辑应用程序需要从我们的一个sql数据库读取数据。因此,我们通过创建一个sql连接器来实现这一点,我们可以从该连接器中公开存储过程、表等。sql连接器的主要问题是,我们要调用的存储过程只是根据一个包含sql函数的位置从表中选择数据,sql连接器无法生成逻辑应用程序读取select语句返回的行所需的元数据。sql连接器只能为out参数或返回值生成元数据,我们无法通过这两种方法返回多行

下一个想法和第二个复杂之处是,由于我们意识到无法调用此存储过程并取回行,因此我们尝试使用select语句通过sql连接器获取行。这个方法的问题是where子句中必须有一个sql函数,这是不受支持的

忽略并发症:

假设我们可以从数据库中读取这些特定行,然后我们希望迭代这些行,这些行应该可以通过logic应用程序中的“repeat”操作获得,并发送电子邮件。我们选择使用我们自己的自定义api发送电子邮件(azure不为我们的电子邮件服务SendWithUs提供托管api)。电子邮件工作完全正常,我们能够从azure logic应用程序中查看和调用api端点。我们对这个发送电子邮件的api端点的担忧是,它不是最安全的

我的问题/s:我们是否可以完成使用sql connector试图完成的任务,还是应该寻找替代方案?


另一种方法:将我们想要做的一切都放在提供电子邮件端点的定制api应用程序中。这需要连接到数据库,调用存储过程,循环存储过程的结果以发送电子邮件,然后更新发送电子邮件的数据库记录。此时,我们的逻辑应用程序将只有一个重复触发器和一个完成所有工作的api调用。但是,此api端点需要尽可能安全,同时仍然可以从逻辑应用程序访问。

执行存储过程现在在逻辑应用程序预览中可用。这里是快照。

此方法是否能够从返回的行生成元数据?或者元数据只能从out参数/返回生成。我们的存储过程将返回许多行,据我所知,元数据不能从选定的存储过程生成。我会使用“获取行”,但“获取行”不支持我们正在使用的sql函数