第11章SQLServer程序设计.pptVIP

  1. 1、本文档共70页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第11章 SQL Server程序设计 11.1程序注释语句 11.2批处理 11.3事务 11.4 变量 11.5 程序控制语句 11. 6 游标 11.7 用户自定义函数 11 . 8本章总结 学习目标: 通过本章学习,你能够学会: 在进行SQL Server程序设计时涉及的批处理、事务、局部变量、全局变量的概念及使用方法 在进行SQL Server程序设计时涉及到的程序控制语句的使用方法 在进行SQL Server程序设计时还会用到游标,在本章中还可以学到游标的使用方法 在进行SQL Server程序设计时为使编程简洁清晰还会用到用户自定义函数,在本章将会学到用户如何定义自己的函数 11.1程序注释语句 前面介绍的Transact-SQL语句以及一些编程的方法和技巧在处理一些简单的查询和实际应用时还可以完全胜任,但是,在有些时候,这些工具无法满足一些特殊要求,例如,要实现与用户的交互操作等。那么,了解和掌握如何使用Transact-SQL语句进行程序设计是非常必要的。 在程序设计的过程中,注释语句的主要作用是帮助他人了解程序的具体内容,同时也便于我们对程序结构有所了解和掌握。试想如果你编了一段100行左右的程序,如果一个月后在来浏览,在没有注释的情况下,即使记忆力再好的程序员,也得花一番功夫才能把这段程序侧底弄清楚。因此经常书写程序注释语句是一种非常好的编程习惯。 11.2批处理 批处理是一个以GO为结束标志的SQL语句组。批中的所有SQL语句作为一个整体编译成一个执行单元后一次提交给SQL Server服务器执行。有多个批时,系统按批地顺序依次执行。 [实例11.2]使用批处理选择Pubs数据库,然后创建一个视图,最后使用视图进行查询。 操作步骤: 通过开始菜单打开查询分析器。 在查询分析器中输入如下语句 执行结果如图11.2所示 由上面的例子可以看出来,所有的批处理命令都使用GO作为结束标志。当编译器读到GO时,它就会把GO前面所有的语句当作一个批处理,而打包成一个数据包发送到服务器。GO本身并不是Transact-SQL语句组部分,它只是一个用于表示批处理结束的前端指令。当有多个批时,系统按批地顺序依次执行,关于批中有如下几点需要注意: (1)一个批处理中若有多个存储过程,则从第二个存储过程开始,每个存储过程的前面都要加关键字EXECUTE 或EXEC. (2)一般地,一个CREATE语句必须独自占用一个批处理,且必须以CREATE语句开始。 (3)若使用ALTERTABLE语句修改表的结构,则不能在同一个批中引用新定义或修改的列。 执行一个批时,若其中有一个语句出现编译错误,则SQL Server将取消该批内所有语句的执行。但若一个批通过了编译而在运行时出现错误,则批内发生错误之前的语句将被执行,发生错误的语句不被执行,发生错误之后的语句视具体情况可能被执行或不被执行。因此,对于仅执行了一部分的批,可能引起整个过程发生错误或产生数据垃圾。 为防止这类情况出现,可以在SQL Server编程中引入“事务”(将在下节讲到),将批处理放在一个事务中,并设置批处理发生错误时引发事务回滚,使所有尚未提交的操作都回滚到发生错误之前的状态。 11.3事务 事务是SQL Server的一个工作单元,事务通常以BEGIN TRANSACTION开始,以COMMIT TRANSACTION结束。如果在一个事务模块中有一个SQL语句执行失败或发生不该有的结果,可以通过设置回滚命令ROLLBACK TRANSACTION取消该语句导致的错误操作结果(例如取消已插入的数据或恢复已被修改的数据),使数据库恢复到该错误语句执行前的状态。 [实例11.3]利用事务在第4章中的学生库的学生信息表中插入两行数据,在插入第2行数据后回滚到两次插入数据之间,然后查询。 步骤: 启动“查询分析器”,输入SQL语句: 得到如下执行结果如图11.3所示 然后对“课程”表进行查询 ,执行结果如下,如图11.4所示。 这个例子一共执行了两次插入操作,第一次操作完成后,设置了一个保存点,第二次插入操作执行完后,程序执行了事务回滚,使第二次的插入操作被取消,但是第一次插入操作依然有效,这样查询后就只能得到一行插入数据。 如果不设置保存点,则默认回滚整个事务,两次插入操作都将被取消。 从上面的例子也可以看出,在一个事务中可以包含多个批处理,当然一个批处理也可以包含多个事务。两者的区别是,批语句的组合发生在编译阶段,而事务语句的组合发生在执行阶段。一个批若在编译阶段发生语法错误,则在运行阶段整个批都不能执行。若编译通过而在运行时发生错误,如违反主键惟一性

您可能关注的文档

文档评论(0)

junjun37473 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档