- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
An Introduction to Database Systems 数据库系统及应用 --基于SQL Server 2000 屠菁 tujing@126.com 第十章 事务和游标 10.1 事务 10.2 游标 l?????原子性(Atomicity):事务必须是原子工作单元,对于其数据修改,要么全都执行,要么全都不执行。 l?????一致性(Consistency):事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。 l?????隔离性(Isolation):由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。 l 持久性(Durability):事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。 【例】启动一个事务向student表中插入一个记录,然后回滚该事务。USE SCHOOL GO BEGIN TRANSACTION --启动事务 INSERT INTO student VALUES(100,陈皓,男,1976/03/05,95033) --插入一个学生记录 ROLLBACK --回滚事务 GO SELECT * FROM student --查询student表的记录 GO 4、设置事务保存点 语法:SAVE TRAN[SACTION ] 事务保存点 作用:事务可以返回的位置,有条件地取消事务的一部分 【例】USE SCHOOL GO BEGIN TRANSACTION --启动事务 INSERT INTO student VALUES(100,陈皓,男,1976/03/05,95033)--插入一个学生记录 SAVE TRANSACTION Mytran --保存点 INSERT INTO student VALUES(200,王勇,男,1976/10/05,95031)--插入一个学生记录 ROLLBACK TRANSACTION Mytran --回滚事务 COMMIT TRANSACTION GO SELECT * FROM student --查询student表的记录 GO 6、不能用于事务的操作 有些不能撤消的操作(如创建、删除和修改数据库的操作),即使取消了事务执行或对事务进行回滚,对数据库造成的影响也是不能恢复的,因此这些操作不能用于事务处理。 这些操作有: CREATE DATABASE、ALTER DATABASE、DROP DATABASE、RESTORE DATABASE、LOAD DATABASE、BACKUP LOG、RESTORE LOG、UPDATE STATISTICS、GRANT、DUMP TRANSACTION、DISK INIT、RECONFIGURE 四、隐式事务 在隐式事务模式下,SQL SERVER执行某些T-SQL语句不需要使用BEGIN TRANSACTION 语句,包括: ALTER TABLE、INSERT、OPEN、CREATE、DELETE、REVOKE、DROP、SELECT、FETCH、TRUNCATE TABLE、UPDATE等。 可使用SET语句来打开或关闭隐式事务模式 语法为:SET IMPLICIT_TRANSACTIONS {ON|OFF} 注意:当设置为ON时,用户必须以显式方式结束事务,否则当用户断开连接时,事务及其所包含的所有数据更改将回滚。 当设置为OFF时,系统转为自动提交模式,提交自行成功的操作。 [例]演示在IMPLICIT_TRANSACTION设置为ON时显式或隐式启动事务。其中@@TRANCOUNT为全局变量。 USE school GO SET NOCOUNT ON --不显示受影响的行数 CREATE TABLE table1(a int) GO INSERT INTO table1 values(1) GO PRINT 使用显式事务 BEGIN TRAN INSERT INTO table1 values(2) PRINT 事务内的事务数目:+CAST(@@TRANCOUNT AS CHAR(5)) COMMIT TRAN PRINT 事务外的事务数目:+CAST(@@TRANCOUNT AS CH
文档评论(0)