存储过程与触发器(超详细)

存储过程与触发器(超详细)

ID:14358481

大小:709.72 KB

页数:32页

时间:2018-07-28

存储过程与触发器(超详细)_第1页
存储过程与触发器(超详细)_第2页
存储过程与触发器(超详细)_第3页
存储过程与触发器(超详细)_第4页
存储过程与触发器(超详细)_第5页
资源描述:

《存储过程与触发器(超详细)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第八章存储过程与触发器在SQLServer2008中存储过程和触发器是两个重要的数据库对象。使用存储过程,可以将Transact-SQL语句和控制流语句预编译到集合并保存到服务器端,它使得管理数据库、显示关于数据库及其用户信息的工作更为容易。而触发器是一种特殊类型的存储过程,在用户使用一种或多种数据修改操作来修改指定表中的数据时被触发并自动执行,通常用于实现复杂的业务规则,更有效地实施数据完整性。本章学习目标Ø了解存储过程的作用及类型Ø掌握存储过程的创建及应用Ø熟悉存储过程的管理Ø了解触发器的作用及分类Ø熟悉各种类型触发器

2、的创建Ø了解嵌套、递归触发器Ø熟悉触发器的管理8.1认识存储过程Transact-SQL语句是应用程序与SQLServer数据库之间的主要编程接口,大量的时间将花费在Transact-SQL语句和应用程序代码上。在很多情况下,许多代码被重复使用多次,每次都输入相同的代码不但繁琐,更由于在客户机上的大量命令语句逐条向SQLServer发送将降低系统运行效率。因此,SQLServer提供了一种方法,它将一些固定的操作集中起来由SQLServer数据库服务器来完成,应用程序只需调用它的名称,将可实现某个特定的任务,这种方法就是存

3、储过程。下面将详细介绍存储过程的概念、特点、创建、执行等内容。8.1.1存储过程概述SQLServer中T-SQL语言为了实现特定任务而将一些需要多次调用的固定的操作编写成子程序并集中以一个存储单元的形式存储在服务器上,由SQLServer数据库服务器通过子程序名来调用它们,这些子程序就是存储过程。存储过程是一种数据库对象,存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行,具有很强的编程功能。存储过程可以使用EXECUTE语句来运行。在SQLServer中使用存储过程而不使用存储在客户端计算机

4、本地的T-SQL程序有以下几个方面的好处。l加快系统运行速度存储程序只在创建时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。l封装复杂操作当对数据库进行复杂操作时(如对多个表进行更新,删除时),可用存储过程将此复杂操作封装起来与数据库提供的事务处理结合一起使用。l实现代码重用可以实现模块化程序设计,存储过程一旦创建,以后即可在程序中调用任意多次,这可以改进应用程序的可维护性,并允许应用程序统一访问数据库。l增强安全性可设定特定用户具有对指定存储过

5、程的执行权限而不具备直接对存储过程中引用的对象具有权限。可以强制应用程序的安全性,参数化存储过程有助于保护应用程序不受SQL注入式攻击。l减少网络流量因为存储过程存储在服务器上,并在服务器上运行。一个需要数百行T-SQL代码的操作可以通过一条执行过程代码的语句来执行,而不需要在网络中发送数百行代码,这样就可以减少网络流量。8.1.2存储过程的分类存储过程是一个被命名的存储在服务器上的Transact-SQL语句的集合,是封装重复性工作的一种方法,它支持用户声明的变量、条件执行和其他强大的编程功能。在SQLServer200

6、8中存储过程可以分为两类:系统存储过程、用户存储过程和扩展性存储过程。1.系统存储过程系统存储过程是由SQLServer系统提供的存储过程,可以作为命令执行各种操作。系统存储过程主要用来从系统表中获取信息,为系统管理员管理SQLServer提供帮助,为用户查看数据库对象提供方便。例如,执行SP_HELPTEXT系统存储过程可以显示规则、默认值、未加密的存储过程、用户函数、触发器或视图的文本信息;执行sp_depends系统存储过程可以显示有关数据库对象相关性的信息;执行sp_rename系统存储过程可以更改当前数据库中用户

7、创建对象的名称。SQLServer中许多管理工作是通过执行系统存储过程来完成的,许多系统信息也可以通过执行系统存储过程而获得。系统存储过程定义在系统数据库master中,其前缀是sp_。在调用时不必在存储过程前加上数据库名。2.用户存储过程用户存储过程是指用户根据自身需要,为完成某一特定功能,在用户数据库中创建的存储过程。用户创建存储过程时,存储过程名的前面加上“##”,是表示创建全局临时存储过程。在存储过程名前面加上“#”,是表示创建局部临时存储过程。局部临时存储过程只能在创建它的会话中可用,当前会话结束时除去。全局临时

8、存储过程可以在所有会话中使用,即所有用户均可以访问该过程。它们都在tempdb数据库上。存储过程可以接受输入参数、向客户端返回表格或者标量结果和消息、调用数据定义语言(DDL)和数据操作语言(DML),然后返回输出参数。在SQLServer2008中,用户定义的存储过程有两种类型:Transact-SQ

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

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

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