sql事务的定义以及使用
1.事务是什么?
事务就是被绑定在一起作为一个逻辑工作单元的SQL语句组,如果任何一个语句操作失败那么整个操作就被失败,进而回滚到操作前状态,或者是上个节点。为了确保要么执行,要么不执行,就可以使用事务。要将一组语句作为事务考虑,就需要通过ACID测试,即原子性,一致性,隔离性和持久性。
2.事务的作用
1.0、为数据库操作提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方法。
2.0、当多个应用程序在并发访问数据库时,可以在这些应用程序之间提供一个隔离方法,以防止彼此的操作互相干扰。
3.0 可以保证数据的一致性和完整性(避免异常和错误等导致的数据信息异常)
2.事务的使用语法
实现刘刘某向夏某转账200
--定义一个变量,记录错误数;
create proc pro_changeAcount
(
@idIn int ,
@idOut int ,
@Remain decimal(18,2)
)
as
declare @error_nums int set @error_nums=0--开始事务
begin transaction tran_change
begin try
update Customers set Remain=(Remain-200) where id=1set @error_nums=@error_nums+@@ERRORupdate Customers set Remain=(Remain+200) where id=2
end try
begin catch
set @error_nums=@error_nums+1
print '错误信息'+error_number()+',错误信息'+error_message()
end catch
if( @error_nums>0)
--回滚事务
rollback tran tran_change
else
--提交事务
commit tran tran_change
–执行事务后查询Customers 表
select*from Customers
得到结果如下
sql事务的定义以及使用相关推荐
- 30分钟全面解析-SQL事务+隔离级别+阻塞+死锁
阅读目录 概述: 一.事务 二.锁 三.阻塞 四.隔离级别 五.死锁 以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 本系列主要是针对T-SQL的总结. ...
- (4.12)全面解析-SQL事务+隔离级别+阻塞+死锁
30分钟全面解析-SQL事务+隔离级别+阻塞+死锁 转自:https://blog.csdn.net/slowlifes/article/details/52752735 2016年10月07日 23 ...
- sql事务(Transaction)用法介绍及回滚实例
sql事务(Transaction)用法介绍及回滚实例 事务(Transaction)是并发控制的单位,是用户定义的一个操作序列.这些操作要么都做,要么都不做,是一个不可分割的工作单位.通过事务, S ...
- SQL 事务及实例演示
简介 事务,英文名称是transaction.是在对数据库进行管理操作过程中一个逻辑单位,由有限的操作序列构成. 其实这个概念很好懂,简单理解就是:事务就是在使用数据库中的一个操作,由一些操作放到一起 ...
- 【概念原理】四种SQL事务隔离级别和事务ACID特性
2019独角兽企业重金招聘Python工程师标准>>> 事务是一组读写操作,并且具有只有所有操作都成功才算成功的特性. 事务隔离级别 SQL事务隔离级别由弱到强分别是:READ_UN ...
- mysql对所有列的数据进行修改6_MySQL的SQL语句 - 数据定义语句(6)- ALTER TABLE 语句 (3)...
添加和删除列 使用ADD向表中添加新列,使用DROP删除现有列.DROP col_name是对标准SQL的MySQL扩展. 若要在表行的特定位置添加列,请使用FIRST col_name 或者 AFT ...
- SQL的数据定义功能及语句:
定义各种数据库的"对象" 模式定义 表定义 视图定义 索引定义 SQL的数据定义语句 操作对象 操作方式 创建 删除 修改 模式 CREATE SCHEMA DROP SCH ...
- sql复制表定义及复制数据行
sql复制表定义及复制数据行 一.复制表定义 假设我们有一个数据表Person,有Id,FirstName,LastName,Weight,Height5个列,表结构可以参考这一篇.现在我们想创建一个 ...
- [转]SQL事务回滚的问题及其解决的方法
[转]SQL事务回滚的问题及其解决的方法 原文:http://shirlly.javaeye.com/blog/370973 Begin Transaction:开始一个事务: Commit Tran ...
最新文章
- 基于keras 的神经网络股价预测模型
- tooltip trigger怎么改气泡的背景颜色_精装房这样改更完美,不砸墙不改电,低预算就能做到!...
- 53-python界面-wxForm
- Spring Cloud的架构
- Markdown编译器插入公式的数学符号及字体颜色、背景
- leetcode 5786. 可移除字符的最大数目(二分法)
- java rest httpclient_Httpclient与RestTemplate的比较(比httpClient更优雅的Restful URL访问)...
- 在iOS项目中,这样才能完美的修改项目名称
- linux+gpio+嵌入式,嵌入式Linux系统中对GPIO操作的方法总结
- 【Unity3D进阶4-12】Unity3D 对话系统
- 中国中央空调行业竞争力策略及未来发展潜力预测报告2021年版
- UG装配体,打开后总显示卸载的一种可行解决办法
- 用Unity同时开发【微信小游戏】【安卓】【IOS】游戏#5.5.1 窗口管理器
- 35岁程序员人群被公司优化,你觉得合理吗?
- 起步晚了20年,韩国芯片凭什么打破美日封锁,做到世界第1?
- 连续3年,ZETTAKIT泽塔云荣膺Gartner中国超融合市场推荐厂商
- 解决WIN8主题下载后安装不了的情况
- windows下使用redis,Redis入门使用,Redis基础命令
- QQ中强制和他人聊天的代码
- 下棋机器人棋子图像识别的软件代码之matlab仿真