SQLServer数据库及应用(第二版)课件第10章游标和事务.ppt

SQLServer数据库及应用(第二版)课件第10章游标和事务.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

10.2.1事务概述1.事务的概念事务是一种机制、是一种操作序列,它包含了一组数据库操作命令,这组命令要么全部执行,要么全部不执行。事务是一个不可分割的逻辑工作单元。遇到错误时,回滚事务,取消事务内所做的所有改变,从而保证数据库中数据的一致性和可恢复性。。10.2.1事务概述2.事务的特性原子性:事务是数据库的逻辑工作单元,事务中的操作要么全部执行,要么全部不执行。一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。隔离性:事务的执行不能被其它事务干扰。持久性(永久性):事务一旦提交,则其对数据库中数据的改变就应该是永久的。10.2.1事务概述3.与批处理的区别批处理是一组整体编译的SQL语句,事务是一组作为单个逻辑工作单元执行的SQL语句。批处理中语句的组合发生在编译时刻,事务中语句的组合发生在执行时刻。10.2.1事务概述3.与批处理的区别编译时批处理中某个语句存在语法错误,则系统将取消整个批处理中所有语句的执行;而在运行时刻,如果事务中某个数据修改违反约束、规则等,系统默认只回退到产生该错误的语句。一个事务中可以拥有多个批处理,一个批处理中可以有多个SQL语句组成的事务,事务内批处理的多少不影响事务的提交或回滚操作。10.2.1事务概述4.事务的分类(1)显式事务显示事务是指显示定义了其启动和结束的事务,即每个事务均以BEGINTRAN语句显示开始,以COMMITTRAN或ROLLBACKTRAN语句显示结束。(2)隐式事务有时候看起来没有使用事务的明显标志,但它们可能隐藏在幕后,这种事务叫做隐式事务。10.2.1事务概述4.事务的分类(2)隐式事务有时候看起来没有使用事务的明显标志,但它们可能隐藏在幕后,这种事务叫做隐式事务。(3)自动提交事务自动提交事务是SQLServer默认的事务管理模式。每条单独的T-SQL语句都是一个事务,每条语句在完成时,都会提交或回滚。10.2.2管理事务1.事务设计的原则不要在事务处理期间要求用户输入。在浏览数据时,尽量不要打开事务,在所有预备的数据分析完成之前,不应启动事务。保持事务尽可能简短。灵活使用更低的事务隔离级别。灵活地使用更低的游标并发选项。10.2.2管理事务2.开始事务其语法格式如下:BEGIN{TRAN|TRANSACTION}[{transaction_name|@tran_name_variable}????[WITHMARK[description]]][;]10.2.2管理事务其中,各参数说明如下:transaction_name:指定分配给事务的名称。@tran_name_variable:用户定义的、含有有效事务名称的变量名称。WITHMARK[description]:指定在日志中标记事务。description是描述该标记的字符串。10.2.2管理事务3.提交事务COMMITTRANSACTION用来标志一个成功事务的结束。提交事务的语法格式为:COMMIT{TRAN|TRANSACTION}[transaction_nam|@tran_name_variable]][;]各参数说明同BEGINTRANSACTION。10.2.2管理事务4.回滚事务将显式事务回滚到事务的起点或事务内的某个保存点。其语法格式为:ROLLBACK{TRAN|TRANSACTION}[transaction_name|@tran_name_variable|savepoint_name|@savepoint_variable][;]其中,savepoint_name:指定SAVETRANSACTION语句中的保存点名称,必须符合标识符规则。@savepoint_variable:是用户定义的、包含有效保存点名称的变量名称。10.2.3使用事务BEGINTRANSACTIONmytran1UPDATE--对数据进行修改但不提交DELETESAVETRANSACTIONS1--设置保存点S1DELETE--删除数据但不提交ROLLBACKTRANSACTIONS1--将事务回滚到保存点S1,这时第5行所做的修改被撤销INSERT--添加数据COMMITTRANSACTION--提交事务10.

文档评论(0)

酱酱 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档