我正在尝试使用 SQL 触发器创建 Azure 逻辑应用工作流。我使用的触发器是“插入行时”。但是,即使记录成功插入表中,工作流也不会被触发。我已遵循 MS 官方文档中提到的所有先决条件,但它仍然不起作用。以下是我的实施细节。
Azure 逻辑应用程序类型:逻辑应用程序标准
工作流类型:有状态
触发器:插入行时(不使用V2)
触发器类型:在应用程序中(内置),因为我的逻辑应用程序部署在 ASE v3 中
数据库:SQL Server
使用的数据库:SQL Server
Azure SQL / 本地数据库:它是本地 SQL Server 数据库。安装 DB 的网络与部署逻辑应用且可访问 DB 的 Azure 虚拟网络对等。
能够使用Azure逻辑应用程序工作流程连接到数据库:是的,我使用HTTP触发器创建了一个单独的测试工作流程,并添加了一个SQL操作“插入行”来检查我是否能够从逻辑应用程序访问数据库如果我能够在数据库表中插入一条记录。这工作得很好。当我向此 HTTP 触发的测试工作流程发送请求时插入记录,后来我使用简单的 SQL 查询添加了另一个操作“执行查询”
Select * From Test;
检查是否获取记录并成功获取上一步中插入的记录。
数据库上是否启用了更改跟踪:是
桌子上是否启用了更改跟踪:是
表是否有标识列:是的,它有一个整数标识列(1,1)
表是否有 RowVersion 列:是
我也尝试使用另一个触发器“修改行时”,但这也没有被触发。
即使完成所有这些设置,它也不起作用。如果我遗漏了什么,请告诉我。非常感谢任何帮助。
谢谢和问候,
阿米特·阿南德
要使用 SQL 触发器触发 **Azure SQL/On-Prem SQL ** 的逻辑应用,您需要在
CHANGE_TRACKING
和 Databse
级别上启用 Table
。如果 CHANGE_TRACKING
未启用,即使进行任何更改,也不会触发 SQL 触发器。
注意:- 可以在具有主键/任何其他键的表上启用更改跟踪。
请检查这些 MS 文档以供参考。
这对我有用。
我这里使用了Azure SQL。我已经创建了表
logic_app
并在两个级别上启用跟踪。
//DATABSE LEVEL
ALTER DATABASE lasqldb
SET CHANGE_TRACKING = ON
(CHANGE_RETENTION = 2 DAYS, AUTO_CLEANUP = ON)
//TABLE LEVEL
ALTER TABLE logic_app
ENABLE CHANGE_TRACKING
OUTPUT
: