SQL 事务处理

 
--建表
create table tns
(
id int identity not null,
names varchar(50) not null,
age int not null check(age<25),
guid varchar(50) not null default(newid()),
primary key(id),
)
-- 删除表
drop table tns

--插入数据
declare @count int
set @count=0
while(@count<=20)
begin
insert into tns(names,age) values('Tom'+cast(@count as varchar),@count)
set @count=@count+1
end

select * from tns

--事务具有一致性,在事务里面的操作要么全部完成要么全部失败
/*
格式
begin transaction
SQL语句
end

全局错误变量
@error
它能捕捉上次执行语句出现的错误号,若无错误则返回0

应用:如向1个表插入10条数据,但当插入到第8条时出错了,但此时已经插入了8条了
这就可以通过事务来达到操作处理的一致性
*/
begin transaction
declare @counts int
declare @errors int
set @counts=0
set @errors=0
while(@counts<=30)
	begin
	insert into tns(names,age)values('Jim'+cast(@counts as varchar),@counts)
	set @errors=@errors+@@error--捕捉错误
	set @counts=@counts+1--自增
	end
if(@errors=0)--若无错误则提交事务
	begin
	commit--提交事务
	print '事务全部处理完成'
	end
	
else
	begin
	rollback--撤销事务
	print '出错了,事务已经回滚'
	end

select * from tns--查询
delete tns--删除表数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值