开发存储过程.ppt.ppt

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
开发存储过程.ppt.ppt

开发存储过程 存储过程的优点 在客户/服务器项目中,可以在很多地方创建代码。在不同的地方创建代码,其中的一个重要区别就在于代码与数据之间的距离。处理数据的程序离数据约近,网络流量越低,性能和数据完整性越高。 存储过程的优点(续) 存储过程是保存在服务器上的命名的批处理。凡是能够由批处理完成的工作,都可以通过存储过程来完成 作为服务器端代码,存储过程具有以下优点: 存储过程是预先编译过的,是执行查询或者批处理的最快方法。 在服务器而不是桌面计算机上执行程序可以极大地降低网络流量。 存储过程是模块化的,易于部署,代码也容易修改。如果前端的程序是通过调用存储过程来进行数据处理的,那么,只需要修改存储过程就可以升级所有客户的应用程序。 存储过程是数据库安全性的一个重要组成部分。如果所有的用户都是通过存储过程来访问数据,那么,就可以禁止用户对表的直接访问,并控制所有对数据的访问。 存储过程的定义 存储过程是由如下的数据定义语言DDL命令来管理 Create:用于创建存储过程,它应当是批处理中的第一个命令。批处理的正常结束,意味着存储过程的创建成功。 Alter:将原有的存储过程整个替换为新的代码。修改存储过程最好采用alter的方法,而不要使用先删除,再重建的方式,因为后一种方法会丢失原来存储过程上所有的权限设置。 Drop:从数据库中删除存储过程。 创建存储过程 CREATE PROC[EDURE] procedure_name ????[ { @parameter data_type } [ = default ] [ OUTPUT ] ] AS sql_statement 更改存储过程 ALTER PROC[EDURE] procedure_name ????[ { @parameter data_type } ?[ = default ] [ OUTPUT ] ] AS ????sql_statement 删除存储过程 DROP PROCEDURE procedure_name 创建存储过程例子 CREATE PROCEDURE p_GetDBGrade AS SELECT student.sno, sname, grade FROM STUDENT JOIN SC ON student.sno=sc.sno JOIN COURSE ON sc.cno=course.cno WHERE cname=数据库 执行存储过程 EXEC 存储过程名 参数 存储过程也可以返回查询的记录集。 编译存储过程 第一次执行存储过程的时候,就会对存储过程进行编译,并将编译的结果保存在内存中。如果重新启动了服务器,所有存储过程的编译结果就全都丢失了。只有当再次调用它们时,才会重新对它们进行编译。 编译的存储过程包含了存储过程中所有SQL语句的查询计划。 获取存储过程的源代码 一旦创建了存储过程,创建存储过程的命令文本就会保存在SysComments表中。 使用sp_helptext系统存储过程可以获取指定存储过程的源代码: sp_helptext 存储过程名 sp_helptext 向存储过程传递数据 如果要使用输入参数向存储过程传递数据,可以在create procedure或者alter procedure命令中的存储过程名之后列出要添加的参数。每个参数都必须以@号打头,一旦声明了输入参数,它就会成为该存储过程中的局部变量。就像声明局部变量一样,必须使用合法的数据类型来定义输入参数。在调用存储过程时,必须为这些输入变量提供值(除非该输入变量具有默认值)。 修改存储过程例子 ALTER PROCEDURE p_GetGrade @cname nvarchar(20) AS SELECT student.sno, sname, grade FROM STUDENT JOIN SC ON student.sno=sc.sno JOIN COURSE ON sc.cno=course.cno WHERE cname=@cname 调用存储过程 EXEC p_GetGrade 数据库 参数的默认值 在调用存储过程时,必须为它提供全部的参数,除非创建参数时为它指定了默认值。要为参数创建默认值,可以在声明参数时,在它的后面加上等号和相应的默认值,其语法如下所示: CREATE PROCEDURE Procedure_name (@Variable DataType = DefaultValue) 带默认值的存储过程例子 CREATE PROCEDURE p_GetGrade

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档