加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL Server 事务处理 回滚事务

发布时间:2023-02-28 13:46:01 所属栏目:MsSql教程 来源:
导读:创建表:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[t1](
[Id] [int] NOT NULL,
[c1] [nvarchar](50) NULL,
[c2] [datetime] NULL,
CONSTRAINT [PK_Table1] P
创建表:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[t1](
    [Id] [int] NOT NULL,
    [c1] [nvarchar](50) NULL,
    [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  = ON) ON [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 
 

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章