sql server数据库 第9章

sql server数据库 第9章

ID:24863378

大小:168.50 KB

页数:62页

时间:2018-11-15

sql server数据库 第9章_第1页
sql server数据库 第9章_第2页
sql server数据库 第9章_第3页
sql server数据库 第9章_第4页
sql server数据库 第9章_第5页
资源描述:

《sql server数据库 第9章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第9章.存储过程和触发器本章要点存储过程概述创建和执行存储过程修改和删除存储过程参数化存储过程存储过程中的错误处理触发器概述管理触发器触发器的工作原理InsteadOf触发器触发器的应用触发器的高级应用9.1存储过程概述存储过程是预先编译好的一组Transact-SQL语句,这些语句作为一个单元存储。SQLServer中的存储过程与其他编程语言中的过程类似,可以接受输入参数,并以输出参数的形式将单个值或多个值返回给调用过程或批处理。存储过程中的语句,包含执行数据库操作以及调用其他过程的语句,向调用过程或批处理返回状态值,返回成功信息或错误码。存储过程在被创建时,会被进行

2、语法分析,判断语法的准确性。如果没有语法问题,存储过程的名称会被保存到sysobjects系统表中,存储过程的内容保存到syscomments系统表中。如果发现语法错误,就不会创建存储过程。存储过程在第一次被执行时,会被优化编译并且保存在高速缓冲中。存储过程的种类局部存储过程局部存储过程由数据库用户创建。创建存储过程的权限默认属于数据库所有者,该所有者可将此权限授予其他用户。系统存储过程在SQLServer中很多的管理活动都可以通过系统存储过程执行,系统存储过程名称有前缀“sp_”,强烈建议不要以“sp_”为前缀创建任何存储过程。“sp_”前缀是SQLServer用来指

3、定系统存储过程的。自定义的名称可能会与以后的某些系统存储过程发生冲突。如果应用程序引用了不符合架构的名称,而自定义的存储过程名称与系统存储过程名称相冲突,则该名称将绑定到系统存储过程而非自定义的存储过程,这将导致应用程序中断。临时存储过程临时存储过程可以在过程名称前添加“#”和“##”前缀的方法进行创建。“#”表示本地临时存储过程,“##”表示全局临时存储过程。SQLServer关闭后,这些存储过程将不再存在。局部临时存储过程在创建它的会话中可用,全局临时存储过程在所有的会话中可用。CLR存储过程在SQLServer2005中,可以用Microsoft.NetFrame

4、work支持的公共语言运行库(CommonLanguageRuntime,CLR)的编程语言创建存储过程。这种存储过程的用法类似于Transact-SQL用户自定义存储过程的用法。它们能够利用由CLR提供的众多编程模型的数据库对象,返回表格形式的结果、整数返回值或输出参数,并可以修改数据和某些数据库对象。扩展存储过程在SQLServer环境外部执行的DLL称为扩展存储过程。扩展存储过程名称有前缀“xp_”,可将参数传递给扩展存储过程。扩展存储过程可返回结果,也可返回状态。存储过程的优势模块化程序设计用户在创建存储过程后便可以将其保存在数据库中,以后可以反复调用,并进行后

5、期的修改和维护,提高开发效率和开发质量。提高执行速度当需要执行大量Transact-SQL代码时,存储过程的执行速度要比大量Transact-SQL代码的执行速度快。因为存储过程会被进行分析和优化,在执行时使用的是在高速缓冲中的内容,而客户端的Transact-SQL语句每次要被发送、编译和优化,效率较低。减少网络流量当需要执行大量Transact-SQL代码时,对于存储过程,只有调用命令和执行的结果在网络中传输,用户端不需要在网络中传输大量的代码,也不需要将数据库中的数据传输到本地进行计算,所以使用存储过程可以减少网络中的数据流量。提供安全机制用户可以被授予执行存储过

6、程的权限,即使用户没有存储过程中引用到的表或视图的权限。既可以保证用户能够通过存储过程操作数据库中的数据,又可以保证用户不能直接访问与存储过程相关的表,从而保证表中数据的安全性。9.2创建和执行存储过程创建存储过程可使用CREATEPROCEDURE语句在当前数据库中创建存储过程,其中可以将PROCEDURE简写成PROC。存储过程名称需要符合标识符规范,并且对于数据库中的对象名是唯一的,存储过程名不可与已经存在的存储过程重名,也不可与已经存在的表和视图等其他数据库对象重名。如果创建局部临时过程,可以在存储过程名前面加前缀“#”;如果要创建全局临时过程,可以在存储过程名

7、前面加前缀“##”。完整的名称(包括“#”或“##”)不能超过128个字符创建存储过程语法CREATEPROC[EDURE]存储过程名(参数定义部分)AS(主体部分)使用SQLServerManagementStudio中的对象资源管理器创建Transact-SQL存储过程调用存储过程可使用EXECUTE语句执行存储过程,其中可以将EXECUTE简写成EXEC。执行存储过程的用户必须被授予该存储过程上的EXECUTE权限。语法EXEC[UTE]存储过程名(参定义部分)例如:USENorthwind;GOEXECGetEmployees@L

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。