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
隱式設(shè)置事務(wù)
復(fù)制代碼 代碼如下:
set implicit_transactions on; -- 啟動隱式事務(wù) 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; --回滾事務(wù) end catch set implicit_transactions off; --關(guān)閉隱式事務(wù) go
顯示事務(wù)以下語句不能使用,隱式事務(wù)可以
復(fù)制代碼 代碼如下:
alter database; backup; create database; drop database; reconfigure; restore; update statistics;
顯示事務(wù)可以嵌套使用
復(fù)制代碼 代碼如下:
--創(chuàng)建存儲過程 create procedure qiantaoProc @asd nchar(10) as begin begin try begin transaction innerTrans save transaction savepoint --創(chuàng)建事務(wù)保存點(diǎn) insert into shiwu (asd) values (@asd); commit transaction innerTrans end try begin catch rollback transaction savepoint --回滾到保存點(diǎn) commit transaction innerTrans end catch end go begin transaction outrans exec qiantaoProc 'asdasd'; rollback transaction outrans