TSQL:逗号组合,交易?

时间:2010-03-15 02:06:25

标签: tsql transactions

鉴于以下内容:

select * from a; 
select * from b;

这两个语句是否在隐式事务中运行?

1 个答案:

答案 0 :(得分:4)

除非另行指定,否则SQL Server中的默认事务模式为autocommit。这意味着每个语句都在自己的事务中运行;如果一个失败,所有前面的陈述仍然成功。

您可以使用BEGIN TRAN语句(显式事务)或SET IMPLICIT_TRANSACTIONS ON(打开隐式事务)来更改此设置。请注意,如果启用隐式事务,则只隐含BEGIN - 您仍需要明确COMMIT

使用隐式交易通常也被认为是不好的做法;由于事务边界不清晰可见,它往往会导致更拙的脚本。