- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 事务、存储过程、触发器和游标 7.1 事 务 7.2 存储过程 7.3 触发器及其用途 7.4 游标 7.1 事 务 1、事务的概念 事务是一个用户定义的完整的工作单元,一个事务内的所有语句被作为整体执行,要么全部执行,要么全部不执行。 2、事务的特性 原子性:事务是数据库的逻辑工作单位,事务中的操作要么都做,要么都不做。 一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。 隔离性:一事务的执行不能被其它事务干扰 持续性(永久性):指事务一旦提交,则其对数据库中数据的改变就应该是永久的 3、事务的分类 SQL Server 的事务模式可分为显式事务、隐式事务和自动事务三种。 1) 显式事务 显式事务是指由用户执行T-sql事务语句而定义的事务,这类事务又称做用户定义事务。定义事务的语句包括: BEGIN TRANSACTION:标识一个事务的开始,即启动事务。 COMMIT TRANSACTION、COMMIT WORK:标识一个事务的结束,事务内所修改的数据被永久保存到数据库中。 ROLLBACK TRANSACTION、ROLLBACK WORK:标识一个事务的结束,说明事务执行过程中遇到错误,事务内所修改的数据被回滚到事务执行前的状态。 示例: BEGIN TRAN demo SELECT * FROM Student INSERT INTO Student VALUES(‘9711112’,’张三’, … ) SELECT * FROM Student ROLLBACK -- 回滚整个事务 或: COMMIT -- 提交事务 4、并发问题与事务隔离 在大型分布式数据库应用程序中,对数据库的并发访问操作是一个普遍存在的问题。SQL Server使用资源锁定的方法管理用户的并发操作。如果在用户并发访问期间没有锁定数据库资源,用户操作相同的数据时可能会产生一些意想不到的问题。这些问题包括: 。丢失修改或被覆盖 。读脏数据 。不能重复读:一个事物多次访问同一行数据而每次所读取的数据是不同的。 。幻影读:是指一个事务多次读取一定范围内的数据行,而前后两次所读取的数据行是不同 5. 事务处理语句 SQL Server中有关事务的处理语句有: 关于事务保存点 保存点提供了一种机制,用于回滚部分事务。在应用程序中,使用SAVE TRANSACTION savepoint_name语句设置保存点,使用ROLLBACK TRANSACTION savepoint_name将事务回滚到保存点。 但实际上只有最外层的BEGIN TRANSACTION语句和COMMIT TRANSACTION语句才能建立和提交事务;在回滚事务时,也只能使用最外层定义的事务名或存储点标记,而不能使用内层定义的事务名。事务嵌套常用在存储过程或触发器内,它们可以使用BEGIN TRANSACTION 。。。COMMIT TRANSACTION对来相互调用。 6. 事务处理实例 例1、 Use pubs go BEGIN TRANSACTION demo SELECT * FROM discounts INSERT discounts VALUES(‘demo1’,null,null,null,20.0) SAVE TRANSACTION save_demo INSERT discounts VALUES(‘demo2’,null,null,null,20.0) SELECT * FROM discounts ROLLBACK TRANSACTION save_demo—回滚部分事务 SELECT * FROM discounts ROLLBACK TRANSACTION—回滚整个事务 SELECT * FROM discounts 7.2 存储过程 7.2.1 创建存储过程 7.2.2 执行存储过程 7.2.3 存储过程的返回值和状态信息 7.2.4 查看和修改存储过程 7.2.5 重命名和删除存储过程 7.2.6 系统存储过程 存储过程的概念 SQL Server提供了一种方法,它可以将一些固定的操作集中起来由SQL Server数据库服务器来完成,以实现某个任务,这种方法就是存储过程。 存储过程是 SQL 语句和流程控制语句的预编译集合,以一个名称存储并作为一个单元处理。存储过程存储在数据库内,可由应用程序调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。 在SQL Server中存储过程分为两类:即系统提供的存储过程和用户自定义的存储过程。 7.2.1 创建存储过程 在SQL Server中,可以使用三种方法创建
原创力文档


文档评论(0)