- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第11章 SQL Server 中的程序设计 11.1 程序中的批、脚本、注释 11.2 程序中的事务 11.3 SQL Server变量 11.4 程序中的流程控制 11.5 案例应用举例 11.1 程序中的批、脚本、注释 批处理 批处理就是一个或多个Transact-SQL语句的集合,从应用程序—次性发送到SQL Server并由SQL Server编译成—个可执行单元,此单元称为执行计划。建立批处理时,使用GO语句作为批处理的结束标记。 建立批处理时的注意事项: CREATE DEFAULT,CREATE PROCEDURE,CREATE RULE,CREATE TRIGGER及CREATE VIEW语句不能与其他语句放在一个批处理中。 不能在删除一个对象之后,在同一批处理中再次引用这个对象。 不能在一个批处理中引用其他批处理中所定义的变量。 不能把规则和默认值绑定到表字段或用户自定义数据类型之后,立即在同—个批处理中使用它们。 不能定义一个CHECK约束之后,立即在同一个批处理中使用该约束。 不能在修改表中的一个字段名之后,立即在同一个批处理中引用新字段名。 如果一个批处理中的第一个语句是执行某个存储过程的EXECUTE语句,则EXECUTE关键字可以省略;如果该语句不是第一个语句,则必须使用EXECUTE(或EXEC)关键字。 脚本 脚本是存储在文件中的一系列SQL语句,即一系列按顺序提交的批处理。 SQL脚本中可以包含一个或多个批处理。使用脚本可以将创建和维护数据库时的操作步骤保存为一个磁盘文件。将Transact-SQL语句保存为脚本文件,不仅可以建立起可再用的模块化代码,还可以在不同计算机之间传送Transact-SQL语句,使两台计算机执行同样的操作。 脚本可以在查询分析器中执行,也可以在isql或osql实用程序中执行。 注释 注释是程序代码中不执行的文本字符串(也称为注解)。在SQL Server中,可以使用两种类型的注释字符: 单行注释符:-- 块注释符:/* */ 11.2 程序中的事务 事务概述 事务: 事务是最小的工作单元,这个工作单元要么成功完成所有操作,一旦失败则必须复原所做的一切。 事务特性: 原子性(Atomic) 一致性(ConDemoltent) 独立性(Isolated) 持久性(Durable) 事务类型 显式事务:显示事务是手工配置的事务。用保留字标识显式事务的开始和结束。使用关键词BEGIN TRAN开始显式事务,COMMIT TRAN结束显示事务, ROLLBACK TRAN取消事务。 隐式事务 :有时候看起来没有使用事务,但它们可能隐藏在幕后,这种事务叫做隐式事务。必须使用Set Implicit Transactions On语句来设置隐式事务模式。 可作为隐式事务开始的语句有:INSERT、UPDATE、DELETE、CREATE、DROP、ALTER TABLE、FETCH、GRANT、OPEN、REVOKE、SELECT、TRUNCATE TABLE。 COMMIT TRANSACTION或ROLLBACK TRANSACTION语句可用于结束隐式事务。 检查点处理 检查点是SQL Server将数据页面从内存拷贝到磁盘时的内部处理点。 检查点可分为自动检查点和手工检查点两类。 自动检查点是基于SQL Server计算的。可在RECOVERY INTERVAL配置选项中规定检查点处理的频率。 手工检查点可在任何时候输入Transact-SQL命令CHECKPOINT来强制执行。只有SA或DBA才能执行该命令。 分布式事务 SQL Server 2000可支持包括多于一台服务器的事务,它是用MSDTC(Microsoft分布事务合作)服务来支持的。有3种方法可使用分布式事务: 用DB-Lib API(应用程序接口)编写分布事务程序; 用Transact-SQL语法BEGIN DISTRIBUTED TRANSACTION; 用SET REMOTE_PROC_TRANSACTION为单个会话启动分布式事务。 锁 锁是用来提供数据库的并发性控制的。SQL Server中有三类锁: 共享锁:是加在正在读取的数据上的。 更新锁:和独占锁很相似,更新锁防止别人在改变数据的过程中修改数据。 独占锁:当要改变数据时使用独占锁。它防止别的用户读取或修改正在工作的数据。直到将锁释放为止,独占锁不与别的锁兼容。 编写有效的事务的原则 在事务启动之前,获得所有需要的用户输入。事务处理期间不能要求用户输入。 在浏览数据时,尽量不要打开事务。 在所有预备的数据分析完成之前,不应启动事务。 保持事务尽可能简短。 灵活使用更低的事务隔离
文档评论(0)