• SQL Server 事务处理 回滚事务


     创建表:

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE TABLE [dbo].[t1](
        
    [Id] [int] NOT NULL,
        
    [c1] [nvarchar](50NULL,
        
    [c2] [datetime] NULL,
     
    CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED 
    (
        
    [Id] ASC
    )
    WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ONON [PRIMARY]
    ON [PRIMARY]

     解决方案(一)


    declare   @iErrorCount   int 
    set @iErrorCount = 0
    begin tran Tran_2008_10_07

    insert into t1(Id, c1) values(1,'1')
    set @iErrorCount=@iErrorCount+@@error

    insert into t1(Id, c1) values(2,'2')
    set @iErrorCount=@iErrorCount+@@error

    insert into t1(Id, c1) values('xxxx3','3')
    set @iErrorCount=@iErrorCount+@@error

    insert into t1(Id, c1) values(4,'4')
    set @iErrorCount=@iErrorCount+@@error

    insert into t1(Id, c1) values(5,'5')
    set @iErrorCount=@iErrorCount+@@error

    if @iErrorCount=0 
      
    begin   
        
    COMMIT TRAN Tran_2008_10_07
      
    end 
    else   
      
    begin   
        
    ROLLBACK TRAN Tran_2008_10_07
      
    end 

     解决方案(二)

    begin try
        
    begin tran Tran_2008_10_07

            
    insert into t1(Id, c1) values(1,'1')

            
    insert into t1(Id, c1) values(2,'2')

            
    insert into t1(Id, c1) values('xxxx3','3')

            
    insert into t1(Id, c1) values(4,'4')

            
    insert into t1(Id, c1) values(5,'5')

        
    COMMIT TRAN Tran_2008_10_07
    end try 
    begin catch 
        
    raiserror 50005N'出错了' 
        
    ROLLBACK TRAN Tran_2008_10_07
    end catch 
  • 相关阅读:
    PIE SDK云图动画导出
    PIE SDK地图书签
    PIE SDK元素的保存与打开
    Jenkins简单入门:下载-安装-配置-构建
    Vue.js—60分钟快速入门
    程序员分享学习平台
    IOC+EF+Core项目搭建EF封装(一)
    python+django学习四
    python+django学习三
    Django2.0 应用 Xadmin 报错二
  • 原文地址:https://www.cnblogs.com/emanlee/p/1305424.html
Copyright © 2020-2023  润新知