免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
SQL事務(wù)回滾的兩種方式
本文鏈接:https://blog.csdn.net/u011791378/article/details/83584240
1.XACT_ABORT
1)set XACT_ABORT off時(shí),回滾產(chǎn)生錯誤的Transact-SQL語句,而事務(wù)將繼續(xù)進(jìn)行處理,(注:錯誤嚴(yán)重或者語法錯誤時(shí)可能回滾整個事務(wù))
2) set XACT_ABORT ON時(shí),如果Transact-SQL語句產(chǎn)生運(yùn)行時(shí)錯誤,整個事務(wù)將終止并回滾,
步驟1:
CREATE TABLE [dbo].[A](
[ID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
[Name] [nvarchar](5) NULL,
[CreateDate] [datetime] NULL,
CONSTRAINT [PK_A] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
--默認(rèn)XACT_ABORT=off
SET XACT_ABORT off
begin tran
insert into [dbo].[A](Name,CreateDate) values('測試off',GETDATE());
insert into [dbo].[A](Name,CreateDate) values('測試off_異常',GETDATE());
insert into [dbo].[A](Name,CreateDate) values('測試off',GETDATE());
commit tran
(1 行受影響)
消息 8152,級別 16,狀態(tài) 4,第 3 行
將截?cái)嘧址蚨M(jìn)制數(shù)據(jù)。
語句已終止。
(1 行受影響)
select * from [dbo].[A]ID Name CreateDate
1          測試off
2018-10-31 15:06:09.330
3 測試off 2018-10-31 15:06:09.333
注意:
事務(wù)的回滾對于擁有自增主鍵的表來說,insert的數(shù)據(jù)是被刪除,update和delete的數(shù)據(jù)是被恢復(fù)  。所以上面所顯示的ID=3 。
步驟2:
set XACT_ABORT ON
begin tran
insert into [dbo].[A](Name,CreateDate) values('測試on',GETDATE());
insert into [dbo].[A](Name,CreateDate) values('測試on_異常',GETDATE());
insert into [dbo].[A](Name,CreateDate) values('測試on',GETDATE());
commit tran
同樣執(zhí)行select 查詢語句  得到如下結(jié)果
ID Name CreateDate
1          測試off
2018-10-31 15:06:09.330
3 測試off 2018-10-31 15:06:09.333
證明事務(wù)全部回滾成功。(注意下次新增數(shù)據(jù)的時(shí)候,ID的值。。。)
2.rollback
在sql中用事務(wù)的時(shí)候一般是這么寫。
declare @error int ;
begin tran
begin try
insert into [dbo].[A](Name,CreateDate) values('測試異常',GETDATE());
insert into [dbo].[A](Name,CreateDate) values('測試異常_錯誤',GETDATE());
insert into [dbo].[A](Name,CreateDate) values('測試異常',GETDATE());
end try
begin catch
set @error=1
end catch
if @error>0
rollback tran
else
commit tran
注:
判斷事務(wù)回滾,則整個事務(wù)里面的sql語句一起回滾,跟SET XACT_ABORT ON相似,不同的是當(dāng)事務(wù)進(jìn)行嵌套時(shí),如果用事務(wù)判斷的方法,嵌套的子事務(wù)不出錯,外面語句出錯,那么整個事務(wù)只會回滾外面出錯的語句,子事務(wù)提交成功了就回滾不了了,但是用SET XACT_ABORT ON,即使子事務(wù)提交成功,如果外圍事務(wù)出錯,子事務(wù)還是回滾.
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
SET XACT_ABORT 的用法
SQL Server 中的事務(wù)與事務(wù)隔離級別以及如何理解臟讀, 未提交讀,不可重復(fù)讀和幻讀產(chǎn)生的過程和原因
SQL Server數(shù)據(jù)庫事務(wù)處理詳解
使用 SQL Server 時(shí)需要經(jīng)常用到的幾個設(shè)置選項(xiàng)!
SQL Server 事務(wù)相關(guān)的存儲過程
分布式事務(wù)已完成。請將此會話登記到新事務(wù)或 NULL 事務(wù)中
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服