T-SQL事务
事务
订火车票的时候,下一个订单,这个订单中,包含多个购买信息,要么全部执行,要么全部不执行,合作事务就是来处理这种模型的一种机制。
--关键字:transaction 或 tran 简写形式
--开启事务:begin tran
--提交事务:commit tran
--回滚事务:rollback tran 或 rollback tran 保存点名 ,语句以回滚到保存点,而不是回滚到事务的起点。
--设置保存点:save transaction 保存点名
--示例
declare @errornum int=0
begin tran
insert into tblorders values('五粮液',2,300)
set @errornum+=@@error
insert into TblOrders values('包子',3,1)
set @errornum+=@@error
if(@errornum>0)
begin
rollback tran
end
else
begin
commit tran
end
锁的问题
需要注意的是,当事务对一个表进行操作时,会对这个表进行占用,无法对这个表进行其它操作,必须要等到事务提交或回滚,才能对这个表进行操作。
在sqlserver中事务是自动提交的,可通过set implicit_transactions on 阻止自动提交,但一般不进行这样的操作。
即sql server中的insert into tblorders values('ee',100,300)
相当于
begin tran
insert into tblorders values('ee',100,300)
commit tran
最新文章
- 多线程操作(循环往listbox中添加数据)
- VS2008注册码
- hdu 3646
- CKEditor&ckfindtor
- HDU 2025 查找最大元素
- Byte数组和Int的互相转换
- CodeForces 757D Felicity's Big Secret Revealed(状压DP)
- .NET 构造Class返回多个json值
- filter过滤器实现验证跳转_返回验证结果
- Linux说明书 - man浅谈
- IntelliJ IDEA 编译代码报错 找不到符号 符号: 找不到符号包 包
- Guava Finalizer
- Docker、Dockerfile、Docker镜像、容器这些都是什么鸟?
- 从经典问题来看 Copy 方法
- 一个简单的获取RGB值方式
- 给IT同学推荐这15个不错的学习网站,收藏起来慢慢看吧
- React 根据 state 修改className
- Google APAC----Africa 2010, Qualification Round(Problem A. Store Credit)----Perl 解法
- BZOJ4999 This Problem Is Too Simple!(树上差分+dfs序+树状数组)
- 解释一下python中的逻辑运算符