




免费预览已结束,剩余10页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
冶金工业出版社 第12章Transact SQL的高级应用 12 1使用Transact SQL开发存储过程 12 2使用Transact SQL开发触发器 12 3使用Transact SQL开发游标 12 4使用Transact SQL的其他技巧 目录 冶金工业出版社 12 1使用Transact SQL开发存储过程存储过程是SQLServer上的一个非常有用的特性 存储过程由被编译在一起的一组SQL语句组成 并可以通过调用单个命令来执行 它们对于维护那些在SQLServer上运行应用程序时所需的代码是非常有用的 SQLServer也预安装了许多系统存储过程 这些系统存储过程在服务器上运行 用于收集关于服务器的专门信息 冶金工业出版社 12 1 1存储过程的概念存储过程只是一个SQL语句组合 它们被编译在一起 能通过单个命令而被执行 存储过程能用于向用户返回数据 在表中插入新数据 修改数据 执行系统函数和管理任务 总之 它们是SQLServer中功能非常强大的一部分 它能使用户的工作更轻松 冶金工业出版社 12 1 2创建存储过程的方法开发存储过程可以用两个方法 一个是SQLServer的企业管理器 另一个是用SQLServerzid自带的查询分析器 两者能实现同样的功能 1 使用SQLServe企业管理器创建存储过程要使用SQLServer企业管理器来创建一个存储过程 2 使用查询分析器来建立存储过程 冶金工业出版社 12 1 3存储过程的用途存储过程的用途几乎是无限的 从返回SELECT语句的结果并用于用户报表到执行复杂的数据有效性校验 可以用存储过程来做任何事 至于说存储过程到底能做什么 部分地取决于支持前面列出的两个观点中的哪一种 以下是存储过程的一些用途 1 模块化的程序设计 2 快速执行 3 网络通信量 4 安全性 冶金工业出版社 12 2使用Transact SQL开发触发器触发器是一系列在表中的数据修改时要执行的SQL语句的集合 可以创建一些在表中的数据在插入 修改或删除时触发的触发器 12 2 1创建触发器使用命令CREATETRIGGER来创建触发器 冶金工业出版社 可以使用语句CREATETRIGGER来创建一个触发器 与存储过程不同 每个触发器都必须和某一个特定的表相关 而且每一个触发器都只和作用于该表上的一个或多个动作有关 下面就是CREATETRIGGER语句的一个简单例子 CREATETRIGGERtr webusers insertONwebusersFORINSERTASEXECUTEmaster xp sendmail administrator Newuserregistered 该触发器的名称为tr webusers insert 可以使用任何想用的名称来命名触发器 但是每个触发器都必须有惟一的名称 在触发器的名称内包含和触发器相关联的表和动作作为触发器名称的一部分是一个很好的主意 冶金工业出版社 对于触发器 请牢记以下重要几点 1 触发器和某指定的表格有关 当该表格被删除时 任何与该表有关的触发器同样会被删除 2 在一个表上的每一个动作只能有一个触发器与之关联 3 在一个单独的表上 最多只能创建三个触发器与之关联 一个INSERT触发器 一个DELETE触发器和一个UPDATE触发器 4 当添加第二个由相同动作触发的触发器时 第一个触发器会在没有任何警告信息的条件下被删除 冶金工业出版社 12 2 2使用Inserted和Deleted表这里介绍两个特殊的表 Inserted表和Deleted表 此二表仅仅在触发器运行时存在 可以使用两个表来精确地确定触发器的动作对数据表所做的修改 冶金工业出版社 12 3使用Transact SQL开发游标12 3 1游标简介关系数据库中的操作会对整个行集产生影响 由SELECT语句返回的行集包括所有满足该语句WHERE子句中条件的行 由语句所返回的这一完整的行集被称为结果集 应用程序 特别是交互式联机应用程序 并不总能将整个结果集作为一个单元来有效地处理 这些应用程序需要一种机制以便每次处理一行或一部分行 游标就是提供这种机制的结果集扩展 游标通过以下方式扩展结果处理 1 允许定位在结果集的特定行 2 从结果集的当前位置检索一行或多行 3 支持对结果集中当前位置的行进行数据修改 4 为由其他用户对显示在结果集中的数据库数据所做的更改提供不同级别的可见性支持 5 提供脚本 存储过程和触发器中使用的访问结果集中的数据的Transact SQL语句 冶金工业出版社 12 3 2在开发过程中使用游标1 监视Transact SQL游标的活动2 使用游标变量3 引用Transact SQL游标 冶金工业出版社 12 4使用Transact SQL的其他技巧Transact SQL有很多技巧 使用的好 可以提高开发效率和程序运行的效率 能够方便调试错误 12 4 1在屏幕上显示数据一般的 当在执行批处理时并不需要在屏幕上打印任何结果 然而在调试一组SQL语句时 PRINT语句就能派上用场 下面就是PRINT语句的一个简单例子 DECLARE myvariableVARCHAR 30 SELECT myvariable HelloThere PRINT myvariable不能使用PRINT语句在屏幕上打印除字符类型以外的其他数据类型 冶金工业出版社 12 4 2注释SQL语句当SQL语句集合变得越来越大而非常复杂时 需要对语句进行注释 可以使用两种方法在语句中添加注释 假如需要添加单行的注释时 可以在一行后使用两个连字符 如下所示 DECLARE myvariableDATETIMESELECT myvariable GETDATE GetsTheCurrentDateSELECT DATENAME dw myvariable GetsTheDayoftheWeek 冶金工业出版社 12 4 3使用条件语句当想根据某些条件来执行一个或多个SQL语句时 需要使用conditional 请看下面的例子 IF SELECTCOUNT FROMAuthors 10PRINT Morethan10Authors 假如在表Authors中有多于10个的作者 该语句就会打印Morethan10Authors 结果 仔细观看该条件语句的结构 注意到缺了什么 这里没有THEN语句 假如在条件语句中包含了THEN 就会产生错误 冶金工业出版社 小结本章主要介绍了Transact SQL的一些高级应用 首先是存储过程的编写 大家应该首先明确的是存储过程是相当重要的数据库应用 它可以减轻网络流量 同时因为它是编译过的 所以在速度上会大大提高 它一般用于那些有级联处理的地方 比如对一基本表的处理要联系到其他几张基本表 那么这种 联系 的处理就可以写入存储过程之中 接着介绍了触发器的开发 触发器和某指定的表格有关 当该表格被删除时 任何与该表有关的触发器同样会被删除 在一个表上的每一个动作只能有一个触发器与之关联 不能有两个或者更多 触发器只有在其FOR短语后面指定的动作发生时执行 然后介绍了游标的开发 一般的应用程序需要
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025湖北恩施州巴东县绿葱坡镇人民政府公益性岗位招聘4人考前自测高频考点模拟试题及答案详解(必刷)
- 2025年长春中医药大学附属医院二道医院(院区)招聘(1号)(含专项招聘高校毕业生)(220人)考前自测高频考点模拟试题及答案详解(网校专用)
- 2025年甘肃武威古浪县八步沙林场招聘财会、水利专业人员考前自测高频考点模拟试题含答案详解
- 2025黑龙江哈尔滨宾县公安局招聘警务辅助人员32人考前自测高频考点模拟试题及一套参考答案详解
- 2025年4月广东广州市天河区珠江新城猎德幼儿园编外教辅人员招聘2人模拟试卷附答案详解(考试直接用)
- 2025昆明市官渡区北京八十学校招聘(18人)模拟试卷及答案详解一套
- 2025宝鸡市某医院招聘药学专技人员(3人)考前自测高频考点模拟试题附答案详解(模拟题)
- 2025年河北沧州任丘园区产业发展集团有限公司招聘工作人员10名考前自测高频考点模拟试题及答案详解(考点梳理)
- 2025福建厦门启航培训服务有限公司招聘1人考前自测高频考点模拟试题及答案详解(网校专用)
- 2025内蒙古自治区阿尔山市属国有企业外部董事拟进入人员模拟试卷有答案详解
- 2025年云南交投集团校园招聘管理人员86人笔试参考题库附带答案详解
- 2025年小学语文一年级第一学期期中测试试卷
- 2025年6月上海市高考语文试题卷(含答案)
- 码头突发事件培训
- 2024年湖南省龙山县卫生系统招聘考试(护理学专业知识)题含答案
- 热点地区物种多样性保护-洞察及研究
- 2025菏投热电(巨野)有限公司面向市属企业(内部)选聘运维人员60人笔试参考题库附带答案详解(10套)
- 黑龙江介绍课件
- 2025至2030中国汽车A柱行业项目调研及市场前景预测评估报告
- 2026年高考英语专题复习:必背近10高考英语高频词汇表
- 呼吸心跳骤停病人的护理查房
评论
0/150
提交评论