步步为营-50-事务
说明:比较常用
1 事务的四大特性:
1.1 原子性atomicity 一个事务中包含的多个SQL语句,要么同时成功,要么同时失败.
1.2 一致性consistency 事务必须使数据库从从一个一致性状态变成另外一个一致性状态.(银行转账)
1.3 隔离性 isolation 各个事务执行互不干扰(锁)
1.4 持久性 durability 对数据库中数据的改变是永久性的.
2 事务的使用
2.1 在SQLServer中
select * from UserInfo --01 事务 --01-01 开启事务(try---catch)捕获异常 BEGIN trybegin transactionUpdate UserInfo set StuName = N'逍遥小天狼' where EmpId = 10Update UserInfo set StuAge = N'年龄' where EmpId = 11--01-02 提交事务commit transaction END tryBEGIN catch--01-03回滚事务rollback tran; END catch
View Code
2.2 在C#中
using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TransactionDemo { class Program { static void Main(string[] args) { #region 01事务 //01 连接字符串 string connstr = "Data Source=127.0.0.1;uid=sa;pwd=sa;Initial Catalog=DemoDB;"; using (SqlConnection conn = new SqlConnection(connstr)) { using (SqlCommand cmd = conn.CreateCommand()) { conn.Open(); //02-01创建事务 SqlTransaction tran = conn.BeginTransaction(); //02-02 把事务给cmd的事务属性 cmd.Transaction = tran; try { cmd.CommandText = @"Update UserInfo set StuName = N'逍遥小天狼' where EmpId = 10 Update UserInfo set StuAge = 111 where EmpId = 11"; cmd.ExecuteNonQuery(); //事务提交 tran.Commit(); } catch (Exception) { tran.Rollback(); } } Console.Read(); #endregion } } } }
View Code
3 事务的调用--另一种方法
3.1 添加引用,引入命名空间using System.Transactions;
#region 02事务try{using (TransactionScope scope = new TransactionScope()){using (SqlConnection conn = new SqlConnection(connstr)){using (SqlCommand cmd = conn.CreateCommand()){conn.Open();cmd.CommandText = @"Update UserInfo set StuName = N'逍遥小天狼' where EmpId = 10Update UserInfo set StuAge = 111 where EmpId = 11";cmd.ExecuteNonQuery();Console.WriteLine("执行成功!");}}//提交事务 scope.Complete();}}catch (Exception){Console.WriteLine("异常");}Console.Read();#endregion
事务2
转载于:https://www.cnblogs.com/YK2012/p/6818997.html
步步为营-50-事务相关推荐
- 全Sql语句实现SBO事务日志记录与查询
接受一个朋友的委托,希望对SBO的事务日志进行记录,并且提供查询分析功能,说实话,行为日志与审计不管对于操作系统.数据库系统或者是用户软件,尽管都是安全考虑所需要的,但是要真正的实现并且通用起来审计, ...
- 一文彻底读懂MySQL事务的四大隔离级别
前言 之前分析一个死锁问题,发现自己对数据库隔离级别理解还不够深入,所以趁着这几天假期,整理一下MySQL事务的四大隔离级别相关知识,希望对大家有帮助~ 事务 什么是事务? 事务,由一个有限的数据库操 ...
- 事务、提交、回滚、脏读、幻读等名词解释以及事务隔离级别详解
看视频的时候,听大佬说commit.事务.脏数据等等名词,听的弟弟是一脸懵呀,今天特地搜集.整理出来了这些名词的解释了,下面我们一起看一下. 文章目录 事务:transaction 概念 四个属性(A ...
- mysql 5.7参数目录_mysql5.7配置
my3306.cnf [client] port = 3306 #端口 socket = /data/mysql3306/mysql3306.sock #mysql以socket方式运行的so ...
- Mybatis动态代理模式实现CRUD
项目实现的功能 查询所有用户信息 通过Id查询用户信息 添加用户(回显主键) 修改用户信息 删除用户信息 通过用户名字模糊查询 一.引入依赖和工程结构 <?xml version="1 ...
- spring学习(四) ———— 整合web项目(SSH)
清楚了spring的IOC 和 AOP,最后一篇就来整合SSH框架把,记录下来,以后应该会用的到. --WH 一.web项目中如何使用spring? 当tomcat启动时,就应该加载spring的配置 ...
- JAVA前端与后端交互面试题
1.前端与后端交互面试题 1.1. 描述Servlet调用过程? 答案: (1)在浏览器输入地址,浏览器先去查找hosts文件,将主机名翻译为ip地址,如果找不到就再去查询dns服务器将主机名翻译成i ...
- TIDB 性能测试(TIUP-TPCC)
New-Order:客户输入一笔新的订货交易: Payment: 更新客户账户余额以反映其支付状况; Delivery: 发货(模拟批处理交易); Order-Status: ...
- 字节面试杂谈——MySQL、Redis
目录 一.架构:Server层,引擎层 二.引擎:InnoDB,MyISAM 三.聚簇索引和非聚簇索引 四.事务及其四大特性.MySQL中事务提交的过程 五.并发事务带来的问题 六.事务的隔离级别 七 ...
- 压力测试报告软件,系统压力测试报告.doc
系统压力测试报告 xx压力测试报告 编写部门:软件测试部 编写地址:xx项目现场 编写时间:2017年8月 目录 一.引言3 1.测试目的3 2.术语说明3 二.系统环境4 三.测试场景设计5 1.测 ...
最新文章
- 04 ffmpeg 从媒体文件解封装,输出YUV420图像
- Show Attend and Tell的实现代码中的python知识学习
- MySQL 数据库常用存储引擎的特点
- 技术员联盟win11系统64位专业版镜像v2021.08
- Windows破解笔记-windows API中的SendMessage
- HBase中HLog详解
- 手把手玩转win8开发系列课程(14)
- 2018.10.24
- 手把手玩转win8开发系列课程(13)
- 安卓开发中关于软键盘处理的一些问题
- 技术干货大集锦(一)
- PDM系统服务器管理,PDM产品数据管理系统
- SQL 汉字笔画排序 音序排序
- 大面积无线网络覆盖5大方案,满足不同场所的实际需求
- onnx优化系列 - 获取中间Node的inference shape的方法
- Linux 下 Influx 安装 初始化 学习笔记
- python里不能调用random库_Python标准库教程—random模块
- python读取txt转为csv
- 深度学习实例第二部分:OpenCV
- 【SemiDrive源码分析】【驱动BringUp】41 - LCM 驱动 backlight 背光控制原理分析
热门文章
- vue 报错 Cannot read property ‘_wrapper‘ of undefined
- c++操作word接口
- ISE 启动Modelsim的xilinxcorelib_ver错误
- 七、脉冲编码调制:采样、量化、编码 ——网络工程师成长之路
- 把手机投影到电脑大屏上如何实现
- 程序员智力题:100层楼扔鸡蛋,确定鸡蛋摔碎的楼层N
- python决策树预测_决策树案例:基于python的商品购买能力预测系统
- mac vscode 运行html,【转载】Mac平台上用VSCode调试C++代码
- matlab 合成孔径,逆合成孔径成像MATLAB算法)配书源代码
- 中国宏观经济景气指数-月度数据(1991.1-2020.12)