Sql server 事务回滚


if exists (select * from sys.databases where name='TestDB')
drop database TestDB;
create database TestDB;

use TestDB;

if OBJECT_ID('department','U') is not null
drop table department
create table department
(
id int primary key identity(1,1),
name varchar(20) not null,
num varchar(50) not null
)


if OBJECT_ID('employee','U') is not null
drop table employee;
create table employee
(
id int primary key identity(1,1) ,
name nvarchar(30) not null,
departmentId int foreign key references department(id) not null
)

insert into employee(name)values('zhangsan')

select * from employee;
select * from department;select * from employee;
select * from department;

begin transaction
declare @errorSum int 
set @errorSum = 0
insert into department(name,num)
values('软件一部','001')
insert into employee(name,departmentId)
values ('lishi','1')
set @errorSum =@errorSum + @@error --累加错误到变量@errorSum中
if @errorSum <>0
begin
print '------------------回滚事务--------------------------'
rollback transaction
end
else 
begin
print '------------------提交事务---------------------------'
commit transaction
end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值