Sql Server数据库--》事务
事务:更多的是一种处理机制(同生共死)
事务是对增删改而言的(因为她们会改变数据)
事务是对多条语句而言,多个sql语句组成,整体执行
事务的4个特点叫做ACID:分别为:
1,A:原子性->事务不可以再分(意思是事务里的所有sql语句,要同时执行)
2,C:一致性-> 事务在操作后,表的数据需要保持莫种程度的一致性(sql语句操作后,要么都成功,要么都失败)
3,I:隔离->事务是单独执行的,一个事务与其它的事务隔离,没有关系
4,D:持久性->但事务成功提交,那么对数据表的影响永久保留
事务的创建:
1,开启事务:begin transation
2,提交事务:commit transation
3,回滚事务:rollback transaction
注意:事务一旦开启,就必须提交或回滚
如果没有提交或回滚,那么你再次去访问数据表,就打不开数据了
Eg:
Declare @error int=0//创建变量,记录错误信息 0为正确
begin transaction//开启事务
update bank set cmoney-=1000 where name=’aa’
Set @error=@error+@@error
update bank set cmoney+=1000 where name=’bb’
Set @error=@error+@@error
If(@error<>0)//如果error不等于0,说明有错误
rollback transaction //回滚
else
commit transaction//提交
在VS中使用事务:步骤
String conStr=”server=.;user id=sa;pwd=123;database=MySchoolMoreData”;
Using(SqlConnection conn=new SqlConnection(conStr))
{
//创建事务,不能new,conn点方法begTransaction()
SqlTansaction st=null;
Try{
Conn.open();//打开通道
st=conn.begTransaction();
String sql1=“update bank set cmoney-=1000 where name=’aa’”;
String sql2=“update bank set cmoney+=1000 where name=’bb’”;
//告诉服务器使用事务机制进行处理
SqlCommand comm=new SqlCommand(sql2,conn,st);
comm.ExecuteNonQuery();
Console.WriteLine(“ok1”);
comm.commandText=sql1;
comm.ExecuteNonQuery();
Console.WriteLine(“ok2”);
//都Ok的话,就提交事务了
st.Commit();
Console.ReadKey();
}
Catch(Exception ex)//到了这里 说明sql语句有错
{
Conson.WriteLine(ex.Message);
st.RollBack();//回滚
Conson.ReadKey();
}
}
Sql Server数据库--》事务的更多相关文章
- SQL Server数据库事务日志序列号(LSN)介绍
原文:http://blog.csdn.net/tjvictor/article/details/5251463 日志序列编号(LSN)是事务日志里面每条记录的编号. 当你执行一次备份时,一些 ...
- SQL Server数据库事务日志存储序列
原文 原文:http://blog.csdn.net/tjvictor/article/details/5251351 如果你的数据库运行在完整或是批量日志恢复模式下,那么你就需要使用作业(job ...
- SQL Server数据库镜像的页面自动修复原理
SQL Server数据库镜像的页面自动修复原理 主库页面损坏 镜像库页面损坏 LSN用来保证事务的时序 LSN保存在每个数据页面的页头 在同一台机器,内存中的数据页和磁盘中的数据页保持同步依靠的是数 ...
- Sql Server数据库备份和恢复:原理篇
本文与您探讨为什么Sql Server有完整备份.差异备份和事务日志备份三种备份方式,以及为什么数据库又有简单模式.完整模式和大容量日志模式这三种恢复模式.本文内容适用于2005以上所有版本的Sql ...
- SQL Server 数据库分离与附加
一.概述 SQL Server提供了“分离/附加”数据库.“备份/还原”数据库.复制数据库等多种数据库的备份和恢复方法.这里介绍一种学习中常用的“分离/附加”方法,类似于大家熟悉的“文件拷贝”方法,即 ...
- SQL Server中事务、锁定和阻塞
事务是什么 在SQL Server中事务是构成一个工作逻辑单元的一系列任务,也就说多个任务放在一起执行,这些任务要么全部执行成功,要么全部执行失败. 通过事务我们可以保证数据的完整性,例如:用户A给用 ...
- SQL SERVER 数据库备份的三种策略及语句
1.全量数据备份 备份整个数据库,恢复时恢复所有.优点是简单,缺点是数据量太大,非常耗时 全数据库备份因为容易实施,被许多系统优先采用.在一天或一周中预定的时间进行全数据库备份使你不用动什么脑筋 ...
- SQL Server数据库性能优化之SQL语句篇【转】
SQL Server数据库性能优化之SQL语句篇http://www.blogjava.net/allen-zhe/archive/2010/07/23/326927.html 近期项目需要, 做了一 ...
- SQL Server提高事务复制效率优化(一)总体概述
随着公司业务的发展,数据量增长迅速,在解决Scale Out的同时,还要考虑到主从的复制延迟问题,尽量降到1s以内满足线上业务,如果不调整,SQL Server默认的配置可能平均要3s左右.生产的 ...
- 5、SQL Server数据库、T-SQL
SQL Server数据库基础 一.安装SQL Server数据库 setup.exe->安装->全新SQL Server独立安装或向现有安装添加功能->输入序列号->下一步- ...
随机推荐
- Oracle表空间常用操作
--创建表空间 create tablespace test datafile 'E:\test2_data.dbf' SIZE 20M autoextend on next 5M maxsize 5 ...
- 我使用过的Linux命令之file - 检测并显示文件类型
摘自:http://codingstandards.iteye.com/blog/804463 我使用过的Linux命令之file - 检测并显示文件类型 用途说明 file命令是用来检测并显示文件类 ...
- Android 自己定义 TextView drawableTop 图标与文字左对齐(效果图)
public class DrawableTopLeftTextView extends TextView { private Paint mPaint; private float fFontHei ...
- dojo demo, server验证username是否已经被使用
这个demo有助于理解JS与server的协同工作. 文档结构如上图. 主要是三个文件: main.js table.html validateUserName.jsp (代码见文章末尾) 页面打 ...
- asp.net页面与页面之间参数传递
传值asp文件send.aspx 代码如下 复制代码 <form id="form1" runat="server" action="recei ...
- iOS开发那些事儿(五)Objective-C浅拷贝与深拷贝
浅拷贝:copy操作出来的对象指针直接指向模板的地址.即两个对象公用一块内存地址 #import <Foundation/Foundation.h> int main(int argc, ...
- FMDatabase 数据库的使用
创建,插入,更新和删除:使用executeUpdate方法,而查询则用executeQuery 1.实例化FMDatabase //paths: ios下Document路径,Document为ios ...
- 【MVC】过滤器
APS.NET MVC中(以下简称“MVC”)的每一个请求,都会分配给相应的控制器和对应的行为方法去处理,而在这些处理的前前后后如果想再加一些额外的逻辑处理.这时候就用到了过滤器. MVC支持的过滤器 ...
- 各种Adapter的用法
同样是一个ListView,可以用不同的Adapter让它显示出来,比如说最常用的ArrayAdapter,SimpleAdapter,SimpleCursorAdapter,以及重写BaseAdap ...
- Python入门之中文乱码
python入门编码: Python 文件中如果未指定编码,有中文代码时候,在执行过程会出现报错: File "test.py", line 2 SyntaxError: Non- ...