- 1、本文档共38页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQL-sever自学教程-存储过程
第12章 存储过程 概 述 存储过程(stored procedure)是一组事先编译好的Transact-SQL代码。存储过程作为一个独立的数据库对象,可以作为一个单元被用户的应用程序调用。由于存储过程是已经编译好的代码,所以执行的时候不必再次进行编译,从而提高了程序的运行效率。 存储过程的特点 SQL Server的存储过程类似于其他编程语言里的过程(procedure),具体体现在: ● 存储过程可以接收参数,并以输出参数的形式返回多个参数给调用存储过程的过程或批处理。 ● 存储过程也可以容纳存储过程,可以在对数据库进行查询、修改的编程语句中调用其他的存储过程。 ● 可以返回执行存储过程的状态值以反映存储过程的执行情况。 可使用 Transact-SQL EXECUTE 语句运行存储过程。 存储过程的好处 使用 SQL Server 中的存储过程而不使用存储在客户计算机本地的 Transact-SQL 程序的优势有: 允许模块化程序设计。 只需创建过程一次并将其存储在数据库中,以后即可在程序中调用该过程任意次。存储过程可由在数据库编程方面有专长的人员创建,并可独立于程序源代码而单独修改。 允许更快执行。 如果某操作需要大量 Transact-SQL 代码或需重复执行,存储过程将比 Transact-SQL 批代码的执行要快。将在创建存储过程时对其进行分析和优化,并可在首次执行该过程后使用该过程的内存中版本。每次运行 Transact-SQL 语句时,都要从客户端重复发送,并且在 SQL Server 每次执行这些语句时,都要对其进行编译和优化。 减少网络流量。 一个需要数百行 Transact-SQL 代码的操作由一条执行过程代码的单独语句就可实现,而不需要在网络中发送数百行代码。 可作为安全机制使用。 即使对于没有直接执行存储过程中语句的权限的用户,也可授予他们执行该存储过程的权限。 存储过程的类型 SQL Server 存储过程是用 Transact-SQL 语句 CREATE PROCEDURE 创建的,并可用 ALTER PROCEDURE 语句进行修改。 存储过程定义包含两个主要组成部分:过程名称及其参数的说明,以及过程的主体(其中包含执行过程操作的 Transact-SQL 语句)。 在Microsoft SQL Server 2000关系型数据库管理系统中,支持5种类型的存储过程:系统存储过程、本地存储过程、临时存储过程、远程存储过程和扩展存储过程。不同类型的存储过程具有不同的作用。 1) 系统存储过程 在SQL Server中的许多管理工作是通过执行系统存储过程来完成的。系统存储过程是由系统提供的存储过程,可以作为命令执行各种操作,还可以作为样本存储过程指导用户如何编写有效的存储过程。 系统存储过程创建和保存在master数据库中,都以sp_为名称的前缀。允许系统管理员执行修改系统表的数据库管理任务。 系统存储过程是SQL Server系统自带的(分为9类),具有执行系统存储过程权限的用户,可在master数据库之外直接调用(即:可在任意一个数据库中执行)。一般情况下,系统存储过程执行成功返回0值,若有错误发生返回非0值。 2)本地存储过程(用户存储过程) 指创建在每个用户自己数据库中的存储过程,即:由用户根据实际问题的需要所创建的存储过程。这种存储过程主要在应用程序中使用,虽然存储过程的名称前不能有sp_为名称的前缀,但是在实际应用中应该使用有意义的名称。 在以后的数据库开发过程中,涉及的存储过程都是本地存储过程,可以完成特定的任务。 3)临时存储过程 临时存储过程首先是本地存储过程。 SQL Server 支持两种临时过程:局部临时过程和全局临时过程。 如果存储过程的名称前面有一个符号“#”,那么把该存储过程称为局部临时存储过程,这种存储过程只能在一个用户会话中使用。局部临时过程只能由创建该过程的连接使用,在当前会话结束时自动除去。 如果存储过程的名称前面有两个符号“##”,那么把该存储过程称为全局临时存储过程,这种存储过程可以在所有用户会话中使用。全局临时过程则可由所有连接使用,在使用该过程的最后一个会话结束时除去。通常是在创建该过程的会话结束时。 4)远程存储过程 指从远程服务器上调用的存储过程,或是从连接到另外一个服务器上的客户机上调用的存储过程。 远程存储过程实际上就是非本地服务器上的存储过程。 5) 扩展存储过程 扩展存储过程是以动态链接库(dll)形式存在的外部程序。 SQL Server自身带了大量的扩展存储过程安装在master数据库中,扩展存储过程与普通存储过程执行方法相同。 创建存储过程 创建存储过程,存储过程是保存起来的可以接受和返回用户提供的参数的
文档评论(0)