【发布时间】:2023-04-07 23:44:01
【问题描述】:
我在 Ms SQL Server 中有以下设置
表A
Id 唯一标识
状态 nvarchar(“未知”、“进行中”、“已完成”)
其他栏目...
表B
Id 唯一标识
LastModifiedDate 日期
其他栏目...
TableA 有一个 Update 触发器,每次 TableA 发生变化时都会更改 TableB 上的 LastModifiedDate
TableB 有一个触发器,每次 LastModifiedDate 更改时都会将消息放入 SSB 队列。
问题:如何修改 TableB 的触发器,使其仅在表的状态完成时触发。
挑战在于TableA中Status的修改过程中,TableB中引起的trigger无法访问tableA的最新值(例如Completed)
我对以下内容不感兴趣: 1) 向 TableB 添加另一列,当 Status == complete 时 TriggerA 将修改该列 2) 使用全局临时表。
还有其他聪明的方法吗? (例如,在嵌套的 TriggerB 中读取 TriggerA 的“更新”值)
【问题讨论】:
-
这些是不是更新或更新后的触发器?如果它们在更新触发器之后,您应该可以从表 B 访问表 A 的最新值
标签: sql-server triggers nested