久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    SQL事務回滾的兩種方式

     hdzgx 2019-12-09

    1.XACT_ABORT

    1)set XACT_ABORT off時,回滾產生錯誤的Transact-SQL語句,而事務將繼續進行處理,(注:錯誤嚴重或者語法錯誤時可能回滾整個事務)

    2) set XACT_ABORT ON時,如果Transact-SQL語句產生運行時錯誤,整個事務將終止并回滾,

    步驟1:

    1. CREATE TABLE [dbo].[A](
    2. [ID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
    3. [Name] [nvarchar](5) NULL,
    4. [CreateDate] [datetime] NULL,
    5. CONSTRAINT [PK_A] PRIMARY KEY CLUSTERED
    6. (
    7. [ID] ASC
    8. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    9. ) ON [PRIMARY]
    10. GO
    11. --默認XACT_ABORT=off
    12. SET XACT_ABORT off
    13. begin tran
    14. insert into [dbo].[A](Name,CreateDate) values('測試off',GETDATE());
    15. insert into [dbo].[A](Name,CreateDate) values('測試off_異常',GETDATE());
    16. insert into [dbo].[A](Name,CreateDate) values('測試off',GETDATE());
    17. commit tran


    (1 行受影響)
    消息 8152,級別 16,狀態 4,第 3 行
    將截斷字符串或二進制數據。
    語句已終止。

    (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

     

    注意:

    事務的回滾對于擁有自增主鍵的表來說,insert的數據是被刪除,update和delete的數據是被恢復  。所以上面所顯示的ID=3 。

    步驟2:

    1. set XACT_ABORT ON
    2. begin tran
    3. insert into [dbo].[A](Name,CreateDate) values('測試on',GETDATE());
    4. insert into [dbo].[A](Name,CreateDate) values('測試on_異常',GETDATE());
    5. insert into [dbo].[A](Name,CreateDate) values('測試on',GETDATE());
    6. commit tran

    同樣執行select 查詢語句  得到如下結果

    ID Name CreateDate
    1          測試off

     2018-10-31 15:06:09.330

    3 測試off 2018-10-31 15:06:09.333

    證明事務全部回滾成功。(注意下次新增數據的時候,ID的值。。。)

     

    2.rollback

    在sql中用事務的時候一般是這么寫。
     

    1. declare @error int ;
    2. begin tran
    3. begin try
    4. insert into [dbo].[A](Name,CreateDate) values('測試異常',GETDATE());
    5. insert into [dbo].[A](Name,CreateDate) values('測試異常_錯誤',GETDATE());
    6. insert into [dbo].[A](Name,CreateDate) values('測試異常',GETDATE());
    7. end try
    8. begin catch
    9. set @error=1
    10. end catch
    11. if @error>0
    12. rollback tran
    13. else
    14. commit tran

    注:

    判斷事務回滾,則整個事務里面的sql語句一起回滾,跟SET XACT_ABORT ON相似,不同的是當事務進行嵌套時,如果用事務判斷的方法,嵌套的子事務不出錯,外面語句出錯,那么整個事務只會回滾外面出錯的語句,子事務提交成功了就回滾不了了,但是用SET XACT_ABORT ON,即使子事務提交成功,如果外圍事務出錯,子事務還是回滾.

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 成人午夜在线观看刺激| 国产精品无码免费播放| 男女高潮喷水在线观看| 欧美肥老太牲交大战| 亚洲人妻系列中文字幕| 欧美熟妇乱子伦XX视频| 成年在线观看免费人视频| 曰韩亚洲AV人人夜夜澡人人爽| 国产福利高颜值在线观看| 无码AV动漫精品一区二区免费 | 亚洲国产精品无码久久98| AV激情亚洲男人的天堂| 亚洲一区二区精品另类| 亚洲卡1卡2卡新区网站| 人人妻人人做人人爽| 澳门永久av免费网站| 久热综合在线亚洲精品| 亚洲午夜无码久久久久蜜臀AV| 久久无码人妻丰满熟妇区毛片| 99久久亚洲综合精品成人网 | 男同精品视频免费观看网站 | 午夜在线观看免费观看 视频| 亚洲AV无码AV在线影院| 精品九九人人做人人爱| 国产好大好硬好爽免费不卡| 国产精品自产拍在线观看| 人妻中文字幕不卡精品| 国产精品老熟女露脸视频| 大陆精大陆国产国语精品| 国产L精品国产亚洲区在线观看| 中文字幕人成乱码中文乱码| 人妻系列无码专区免费| 国产乱子影视频上线免费观看| 色狠狠色噜噜AV一区| 精品少妇人妻AV无码久久| 亚洲欧洲日产国码无码AV喷潮| 久久综合亚洲色一区二区三区| 男人狂桶女人高潮嗷嗷| 国产尤物精品自在拍视频首页| 18禁网站免费无遮挡无码中文 | 饥渴的少妇2中文字幕|