SQL Server:原子触发器

Rum*_*nsk 2 sql sql-server triggers atomic transaction-isolation

我有两个简单的问题。

  1. 默认情况下,SqlServer 触发器是原子的吗?
  2. 如果没有,如何实现?

环境很简单。我有两个用户(让我们称他们为 UserA 和 UserB)有两个不同的数据库连接。两个连接同时处于活动状态。

当 UserA 在特定表中插入一行时,会触发一个触发器(我们称之为 TriggerAtomic)。我需要确保在触发 TriggerAtomic 时,UserB 在 TriggerAtomic 完成之前不能执行任何操作。显然,在 TriggerAtomic 完成之前,不能执行其他触发器、函数、过程……。

Tab*_*man 5

在 INSERT 语句周围放置一个事务,然后提交它。SQL 触发器在触发它们的语句的事务中运行。