由于当初用oracle较多,sql server 用得少,前天经理问了我一个关于在sql server 客户端执行多条语句,如何将多条语句放在
一个事务里的问题。由于sql server 默认是执行完一条语句就自动提交的,一下子把我难住了。今天五一放假,于是好好研究一下
SET XACT_ABORT { ON | OFF } 可设置在sql语句发生错误时是否自动回滚到当前事务
BEGIN TRAN标记事务开始
COMMIT TRAN 提交事务
示例如下:
SET XACT_ABORT ON;
GO
BEGIN TRANSACTION;
insert into .......;
update table ......;
COMMIT TRANSACTION;
则如果其中一条sql发生错误,整个事务将回滚。
一个事务里的问题。由于sql server 默认是执行完一条语句就自动提交的,一下子把我难住了。今天五一放假,于是好好研究一下
这个问题,解决方案如下:
sql server 里有相关属性 XACT_ABORT, BEGIN TRAN, COMMIT TRANSET XACT_ABORT { ON | OFF } 可设置在sql语句发生错误时是否自动回滚到当前事务
BEGIN TRAN标记事务开始
COMMIT TRAN 提交事务
示例如下:
SET XACT_ABORT ON;
GO
BEGIN TRANSACTION;
insert into .......;
update table ......;
COMMIT TRANSACTION;
则如果其中一条sql发生错误,整个事务将回滚。