- 1、本文档共70页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
功能光标在名称上
第11章 SQL Server程序设计;学习目标:
通过本章学习,你能够学会:
在进行SQL Server程序设计时涉及的批处理、事务、局部变量、全局变量的概念及使用方法
在进行SQL Server程序设计时涉及到的程序控制语句的使用方法
在进行SQL Server程序设计时还会用到游标,在本章中还可以学到游标的使用方法
在进行SQL Server程序设计时为使编程简洁清晰还会用到用户自定义函数,在本章将会学到用户如何定义自己的函数;11.1程序注释语句; 在程序设计的过程中,注释语句的主要作用是帮助他人了解程序的具体内容,同时也便于我们对程序结构有所了解和掌握。试想如果你编了一段100行左右的程序,如果一个月后在来浏览,在没有注释的情况下,即使记忆力再好的程序员,也得花一番功夫才能把这段程序侧底弄清楚。因此经常书写程序注释语句是一种非常好的编程习惯。;[实例11.1]下面是一个关于创建学生表的程序,请大家注意注释语句的书写
操作步骤:
通过开始菜单打开查询分析器。
在查询分析器的编辑窗口输入程序设计语句,如下图所示;批处理是一个以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编程中引入“事务”(将在下节讲到),将批处理放在一个事务中,并设置批处理发生错误时引发事务回滚,使所有尚未提交的操作都回滚到发生错误之前的状态。;事务是SQL Server的一个工作单元,事务通常以BEGIN TRANSACTION开始,以COMMIT TRANSACTION结束。如果在一个事务模块中有一个SQL语句执行失败或发生不该有的结果,可以通过设置回滚命令ROLLBACK TRANSACTION取消该语句导致的错误操作结果(例如取消已插入的数据或恢复已被修改的数据),使数据库恢复到该错误语句执行前的状态。;[实例11.3]利用事务在第4章中的学生库的学生信息表中插入两行数据,在插入第2行数据后回滚到两次插入数据之间,然后查询。
步骤: 启动“查询分析器”,输入SQL语句:
得到如下执行结果如图11.3所示
;然后对“课程”表进行查询 ,执行结果如下,如图11.4所示。 ; 这个例子一共执行了两次插入操作,第一次操作完成后,设置了一个保存点,第二次插入操作执行完后,程序执行了事务回滚,使第二次的插入操作被取消,但是第一次插入操作依然有效,这样查询后就只能得到一行插入数据。
如果不设置保存点,则默认回滚整个事务,两次插入操作都将被取消。 ;;由上面的例子我们可以看出,建立一个事务包含四个语句,即开始事务、设置保存点、回滚事务、提交事务。
(1) 开始(或启动)一个事务单元。
命令格式:
BEGIN TRANSACTION 单元名称
(2) 在事务中设置一个保存点。保存点的设置可以使得回滚事务语句回滚到该保存点,以便取消该事务中的部分操作对数据库所引起的变动。
命令格式:
SAVE TRANSACTION 保存点名称;(3) 回滚一个事务单元。该语句用于取消事务中的部分或全部操作,使得这些操作对数据库所作的改动恢复为改动前的状态。
命令格式:
ROLLBACK
您可能关注的文档
- 七个对外贸易发展字母英文模板.doc
- 三丰卡尺选择指南.doc
- 三丰卡尺卡钳指示.doc
- 三江机场环境影响分析.doc
- 三是电磁污染防治.ppt
- 三国总结.doc
- 三电容器的识别和测量.ppt
- 三种冷却塔的比较与选择.doc
- 三相全桥桥式整流电路仿真.doc
- 三角知识的重点.ppt
- 数据仓库:Redshift:Redshift与BI工具集成.docx
- 数据仓库:Redshift:数据仓库原理与设计.docx
- 数据仓库:Snowflake:数据仓库成本控制与Snowflake定价策略.docx
- 大数据基础:大数据概述:大数据处理框架MapReduce.docx
- 实时计算:GoogleDataflow服务架构解析.docx
- 分布式存储系统:HDFS与MapReduce集成教程.docx
- 实时计算:Azure Stream Analytics:数据流窗口与聚合操作.docx
- 实时计算:Kafka Streams:Kafka Streams架构与原理.docx
- 实时计算:Kafka Streams:Kafka Streams连接器开发与使用.docx
- 数据仓库:BigQuery:BigQuery数据分区与索引优化.docx
文档评论(0)