鉴于以下内容:
select * from a;
select * from b;
这两个语句是否在隐式事务中运行?
答案 0 :(得分:4)
除非另行指定,否则SQL Server中的默认事务模式为autocommit。这意味着每个语句都在自己的事务中运行;如果一个失败,所有前面的陈述仍然成功。
您可以使用BEGIN TRAN
语句(显式事务)或SET IMPLICIT_TRANSACTIONS ON
(打开隐式事务)来更改此设置。请注意,如果启用隐式事务,则只隐含BEGIN
- 您仍需要明确COMMIT
。
使用隐式交易通常也被认为是不好的做法;由于事务边界不清晰可见,它往往会导致更拙的脚本。