SQL SERVER 事务处理

<1>.事务的概念
          事务是一个不可分割的工作逻辑单元。
<2>.为什么使用事物
          可以防止错误的发生。
<3>.事物的作用
          要么所有的操作全部完成,要么所有操作都不执行。
<4>.什么是事物
          事务是单个的工作单元
            如果某一事务成功,则在该事务中进行的所有的数据更改均会提交,称为数据库中的永久组成部分。
            如果事务遇到错误且必须取消或回滚,则所有数据更改均被清楚。
<5>.事务的特性
            事务必须具备以下四个属性,简称ACID 属性:
             (1).原子性(Atomicity):事务是一个完整的操作。事务的各步操作是不可分的(原子的);要么都执行,要么都不执行。
             (2).一致性(Consistency):当事务完成时,数据必须处于一致状态。
             (3).隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务。
             (4).永久性(Durability):事务完成后,它对数据库的修改被永久保持,事务日志能够保持事务的永久性。
<6>.如何创建事务
           1. T-SQL使用下列语句来管理事务:
             (1).开始事务:BEGIN TRANSACTION
             (2).提交事务:COMMIT TRANSACTION
             (3).回滚(撤销)事务:ROLLBACK TRANSACTION
           2.  一旦事务提交或回滚,则事务结束。
             (1).判断某条语句执行是否出错:
             (2).使用全局变量@@ERROR;
             3).@@ERROR只能判断当前一条T-SQL语句执行是否有错,为了判断事务中所有T-SQL语句是否有错,我们需要对错误进行累计;          
               如:SET @errorSum=@errorSum+@@error
<7>.事务的分类
            (1).显示事务:用BEGIN TRANSACTION明确指定事务的开始,这是最常用的事务类型
            (2).隐性事务:通过设置SET IMPLICIT_TRANSACTIONS ON 语句,将隐性事务模式设置为打开,下一个语句自动启动一个新事务。当该事务完成时,再              下一个 T-SQL 语句又将启动一个新事务
            (3).自动提交事务:这是 SQL Server 的默认模式,它将每条单独的 T-SQL 语句视为一个事务,如果成功执行,则自动提交;如果错误,则自动回滚。
<8>.创建事务的原则
            创建事务时要遵守一下的原则:
             (1).事务要尽可能的简短
             (2).在事务中访问的数据量要尽量最少
             (3).浏览数据是尽量不要打开事务
             (4).在事务处理期间不要请求用户输入
<9>.Transact-SQL中使用哪些语句管理事务?
            开始事务:begin transaction
            提交事务:commit transaction
            回滚事务:rollback transaction 
<10>.使用事务的注意事项
            (1).在每个操作之后,都要检查@@error或rowcount的值;
            (2).当一个事务结束之后,紧跟在事务之后的T-SQL代码可以继续执行,但是出错后不能再回滚事务了;
            (3).已经提交完毕的事务会将数据正式写入数据库;
            (4).在一个事务执行时,如果发生如断电等意外事件,则在下次重新启动系统时,该事务会自动回滚;
            (6).在事务里发生错误是的事务无法执行下去,事务也会自动回滚;
            (7).无法回滚的语句不能在事务中使用。
<11>.事务的工作原理
            (1).在事务开始时,SQLServer会将要修改的数据锁定,同时创建一个临时的事务日志,在该临时的事务日志里存放更改的数据和更改的存储过程。
            (2).在事务未提交之前,事务中所有的数据操作是临时的,一旦发生数据操作失败,就使用临时日志里的数据去回滚事务操作,并解除锁定。在事务              被成功提交后,数据库就将临时的事务日志的内容存储到数据库中,此时事务操作完成。
<12>.事务的隔离级别
            在SQL Server 中事务的隔离级别由低到高分为5个级别
               (1).Read uncommitted:不隔离数据
               (2).Read committed:不允许读取没有提交的数据
               (3).Repeatable Read:在事务中锁定所读取的数据不让别人修改和删除。
               (4).Snashot:快照隔离,可以为读取数据的事务提供所需数据的一个已提交的版本。
               (5).Serializable:将事务所要用到的数据表全部锁定,不与许其它事务添加、修改和删除数据。

 

转载于:https://www.cnblogs.com/ranfang/archive/2013/05/03/3057237.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261725.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

net start zabbix agent 服务没有相应控制功能_一步到位,服务器监控就是这么简单...

对于运维的日常工作来说&#xff0c;服务器监控是必须且最基础的一项内容。在企业基础设施运维过程中&#xff0c;管理员必须能够掌握所有服务器的运行状况&#xff0c;以便及时发现问题&#xff0c;尽可能减少故障的发生。通常我们会借助一些监控的软件来获取每个服务器的基础…

【原题】【noip 2003 T2】【动态规划】加分二叉树

问题 描述 Description 设一个n个节点的二叉树tree的中序遍历为&#xff08;l,2,3,…,n&#xff09;&#xff0c;其中数字1,2,3,…,n为节点编号。每个节点都有一个分数&#xff08;均为正整数&#xff09;&#xff0c;记第i个节点的分数为di&#xff0c;tree及它的每个子树都有…

HRegionServer上工作组件汇总

HRegionServer上工作组件汇总&#xff0c;近期推出&#xff01;

发现在创建云服务器ecs实例的磁盘快照时_玩转ECS第7讲|ECS数据保护-数据备份新特性与最佳实践...

简介&#xff1a; 本文中&#xff0c;阿里云智能弹性计算专家余初武(悟元)将结合阿里云近期推出的数据备份新特性(快照极速备份、一致性快照组)来介绍云上环境如何做数据备份的最佳实践&#xff1b;适合需要构建云上架构的工程师&#xff0c;架构师和云上实施从业人员收看。关键…

用Ant编译Flex项目的几点注意事项

1. 往mxmlc中用define添加编译参数的时候特别要注意一点&#xff0c;字符串一定要包含在单引号中。 下面的写法是无法通过的&#xff1a; <mxmlc ...><define name"NS::NAME" value"Flex in air"/> </mxmlc>下面的写法才是正确的&#x…

链表打印从尾到头打印链表

在本文中,我们主要介绍链表打印的内容,自我感觉有个不错的建议和大家分享下 每日一道理 生命不是一篇"文摘"&#xff0c;不接受平淡&#xff0c;只收藏精彩。她是一个完整的过程&#xff0c;是一个"连载"&#xff0c;无论成功还是失败&#xff0c;她都不会…

1、EJB基本概念及运行环境

1、EJB是什么&#xff1f; EJB是一个用于分布式业务应用的标准服务端组件模型。采用EJB构架编写的应用是可伸缩的、事务性的、多用户安全的。采用EJB编写的应用可以部署在任何支持EJB规范的服务器平台上&#xff0c;例如&#xff1a;jboss、weblogic。 2、EJB是用来干什么的&am…

二分法求方程的根_快速求解方程的根——二分法与牛顿迭代法

今天是周四高等数学专题的第7篇文章。之前的文章和大家聊了许多数学上的理论&#xff0c;今天和大家聊点有用的东西。我们都知道&#xff0c;工业上的很多问题经过抽象和建模之后&#xff0c;本质还是数学问题。而说到数学问题就离不开方程&#xff0c;在数学上我们可以用各种推…

关于android开发环境的创建

最近想暑假找个实习单位&#xff0c;想想java android方面的应该比c、C要好点&#xff0c;然后就想重操旧业学习android 大三的时候我学过一个学期的android知识。当时创建开发环境我很快就弄好了&#xff0c;但是环境创建险些让我崩溃。 环境搭建包括四步&#xff1a; 1、JDK安…

getchar()和EOF总结

大师级经典的著作&#xff0c;要字斟句酌的去读&#xff0c;去理解。以前在看K&R的The C Programming Language(SecondEdition) 第1.5节的字符输入/输出&#xff0c;被getchar()和EOF所迷惑了。可能主要还是由于没有搞清楚getchar()的工作原理和EOF的用法。因此,感觉很有必…

Android多种View动画:EasyAndroidAnimations

&#xfeff;&#xfeff;Android多种View动画&#xff1a;EasyAndroidAnimations EasyAndroidAnimations是Android的一个动画库&#xff0c;使用起来简单方便&#xff0c;EasyAndroidAnimations将一个Android View以各种形式的动画动起来。 其中如图&#xff1a; EasyAndroidA…

python中configparser详解_Python中的ConfigParser模块使用详解

1.基本的读取配置文件-read(filename) 直接读取ini文件内容-sections() 得到所有的section&#xff0c;并以列表的形式返回-options(section) 得到该section的所有option-items(section) 得到该section的所有键值对-get(section,option) 得到section中option的值&#xff0c;返…

关于ubuntu无法启动nginx的问题

在ubuntu13.04上使用apt方式安装nginx发现无法启动nginx&#xff0c;也不报错 查看nginx运行状态&#xff0c;显示未启动 搜索无果&#xff0c;想起了原来的遇到的一个问题&#xff0c;那时候是安装了nginx和lighthttpd服务器&#xff0c;导致nginx无法启动的情况&#xff0c;提…

MVC中validateRequest=false不起作用

MVC Request.QueryString 客户端 潜在危险 在MVC中如果传递xml等参数时&#xff0c;会报“从客户端中检测到有潜在危险的Request.QueryString值”的错误&#xff0c;无法提交参数&#xff0c;在web.Config的Pages节点或者aspx页面中添加validateRequest"false"貌似不…

C语言之基本算法32—鞍点

//数组/*题目&#xff1a;求随意矩阵的全部鞍点。并统计个数。&#xff08;在矩阵中&#xff0c;一个数在所在行中是最大值&#xff0c; 在所在列中是最小值。则被称为鞍点。&#xff09; 如&#xff1a; 1 2 34 5 6 7 8 9 当中&#xff0c;a[1][3]3是该矩阵唯一的…

django python3.6_Django+mysql+python3.6.5 Windows

1.下载py365https://www.python.org/downloads/windows/(原来有2.7.x版本 直接修改环境变量即可&#xff0c;需要多个python环境可以使用pyevn)2.安装mysql2.1下载https://dev.mysql.com/downloads/mysql/5.7.html#downloads解压&#xff1a;mysql-5.7.22-winx642.2配置环境变量…

STL - 底层实现

一、STL六大组件1&#xff09;容器&#xff08;Container&#xff09;2&#xff09;算法&#xff08;Algorithm&#xff09;3&#xff09;迭代器&#xff08;Iterator&#xff09;4&#xff09;仿函数&#xff08;Function object&#xff09;5&#xff09;适配器&#xff08;A…

Oracle以SQL方式导出导入(转移)数据

为什么80%的码农都做不了架构师&#xff1f;>>> 导出源数据 源数据库为Oracle 9g使用SQL Developer导出数据库的表结构和数据&#xff0c;导出成sql文件。这里的源Oracle和目标Oracle的编码是否相同&#xff0c;如果表字段里有时间类型的那么还要注意两库的日期格式…

产品经理应该干些啥?

产品经理的工作&#xff0c;总结起来就三件事&#xff1a; 1、知道做什么 2、知道怎么做 3、让别人去做 先来看“知道做什么”。 许多产品经理其实不知道该做什么&#xff0c;整日被动的应付上面安排下来的工作&#xff0c;一旦出现工作的断顿&#xff0c;就会感觉无所事…

oppo售后解锁恢复工具.zip_OPPO手机4个不为人知的小技巧,全知道的竟然不到1%,令人唏嘘...

随着科技的发展速度加快&#xff0c;智能手机产品也越做越高端。手机里面也包含着很多很实用的技巧&#xff0c;却没有多少人知道&#xff0c;简直就是白白的浪费呀&#xff01;应用分屏一个很好用的功能&#xff0c;利用它我们可同时进行两种操作&#xff0c;比如&#xff1a;…