SQL Server重溫 事務

當對多個表進行更新的時候,某條執行失敗。為了保持數據的完整性,需要使用事務回滾

為什么使用事務
  當對多個表進行更新的時候,某條執行失敗。為了保持數據的完整性,需要使用事務回滾。
顯示設置事務
代碼如下:
begin try
begin transaction
insert into shiwu (asd) values (‘aasdasda’);
commit transaction
end try
begin catch
select ERROR_NUMBER() as errornumber
rollback transaction
end catch

隱式設置事務
代碼如下:
set implicit_transactions on; — 啟動隱式事務
go
begin try
insert into shiwu (asd) values (‘aasdasda’);
insert into shiwu (asd) values (‘aasdasda’);
commit transaction;
end try
begin catch
select ERROR_NUMBER() as errornumber
rollback transaction; –回滾事務
end catch
set implicit_transactions off; –關閉隱式事務
go

顯示事務以下語句不能使用,隱式事務可以
代碼如下:
alter database;
backup;
create database;
drop database;
reconfigure;
restore;
update statistics;

顯示事務可以嵌套使用
代碼如下:
–創建存儲過程
create procedure qiantaoProc
@asd nchar(10)
as
begin
begin try
begin transaction innerTrans
save transaction savepoint –創建事務保存點
insert into shiwu (asd) values (@asd);
commit transaction innerTrans
end try
begin catch
rollback transaction savepoint –回滾到保存點
commit transaction innerTrans
end catch
end
go
begin transaction outrans
exec qiantaoProc ‘asdasd’;
rollback transaction outrans

事務嵌套,回滾外層事務時,如果嵌套內的事務已經回滾過則會有異常。此時需要使用事務保存點。如上代碼。

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享