执行后立即从INSERT触发器存储的DB值中检索

时间:2017-09-04 13:18:27

标签: sql-server database-trigger

在SQLServer DB中,存在一个表(A),其上有一个INSERT触发器。在该触发器中,当记录插入(A)时,在另一个表(B)中插入/更新一个值。

使用ADO Recordset的程序通过使用AddNew / Update ADO Recordset方法执行INSERT到(A)。在表(A)上调用Recordset.Update之后立即尝试读取存储在表(B)中的值有多安全?考虑到整个过程都包含在一个交易中,是否有任何机会" SELECT FROM B"语句在服务器有机会执行" INSERT INTO B"之前执行。来自触发器的语句(例如,在服务器的高负载下)?

1 个答案:

答案 0 :(得分:2)

触发器同步执行,作为导致它们触发的语句的一部分。在触发器完成其操作之前,不存在以下语句将执行的风险,除非触发器正在做某些事情以故意将其操作与原始语句分离 - 例如通过使用服务代理排队某种形式的更改。

假设您的触发器没有使用服务代理,而只是直接INSERT进入表B,那么您就完全安全了。