网站大量收购独家精品文档,联系QQ:2885784924

第4章 存储过程和触发器.ppt

  1. 1、本文档共86页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
存储过程和触发器 计算机科学与工程学院 2013 年9月 存储过程的概述 存储过程:几种存储在sql server中的sql 语句和流程控制语句的预编译集合,用以实现某种任务。 使用存储过程的好处: (1)减少客户端代码的重复。只需要创建一次存储过程并将其存储在数据库中,以后即可在客户端程序中多次调用该存储过程。 (2)允许更快的执行。如果某操作需要大量的Sql代码或重复执行,使用存储过程将比在酷暑段执行那个SQ代码的执行速度要快。存储过程在服务器段经过预编译,生成查询计划,可以直接执行,二在哭护短每次运行SQL语句时,都要从客户端重复发送,在SQL SERVER执行这些语句时,都要对其进行那个编译和优化。 (3)减少网络流量。如:一个需要百行SQL代码的操作由一条执行过程代码的单独语句就可以实现,而不需要在网络中发送百行代码。 存储过程的概述 使用存储过程的好处: (3)简化数据库管理。如,要修改某种查询,如果查询重复放在客户机上,则要在所有客户机上修改查询,而使用存储过程可以集中修改; (4)可作为安全机制的使用。直接发送sql语句可能会泄露密码等,而采用存储过程只需传递必要的参数即可。 存储过程的分类 系统存储过程:存储在master数据库中,用于执行sql server的某些管理功能、显示数据库和用户的信息。系统存储过程以sp_开头,可以在任何数据库中执行。 用户存储过程:用户自己创建并存储在用户数据库中的存储过程。 临时存储过程分为两种:  (1)本地临时存储过程,以井字号(#)作为其名称的第一个字符,则该存储过程将成为一个存放在tempdb数据库中的本地临时存储过程,且只有创建它的用户才能执行它;  (2)全局临时存储过程,以两个井字号(##)号开始,则该存储过程将成为一个存储在tempdb数据库中的全局临时存储过程,全局临时存储过程一旦创建,以后连接到服务器的任意用户都可以执行它,而且不需要特定的权限。 存储过程的分类 远程存储过程:在SQL Server2005中,远程存储过程(Remote Stored Procedures)是位于远程服务器上的存储过程,通常可以使用分布式查询和EXECUTE命令执行一个远程存储过程。 扩展存储过程:扩展存储过程(Extended Stored Procedures)是用户可以使用外部程序语言编写的存储过程,而且扩展存储过程的名称通常以xp_开头。 存储过程的创建 1 创建存储过程的格式 CREATE PROCEDURE 存储过程名 [{@参数名 数据类型}[=default][OUTPUT] ][,…n] [With {recompile|encryption|recompile,encryption}] AS SQL语句 存储过程名:必须符合标识符命名规则; 编号:可选整数,用于对同名的存储过程分组,以便用一条drop procedure语句将同组的存储过程一起删除; @参数:过程中的参数,在创建过程的语句中可以声明一个或多个参数。用户必须在执行存储过程时提供每个所声明参数的值。参数名称前必须使用@符号,每个过程的参数仅用于该过程本身。在其他过程中可以使用相同的参数名称。参数只能用于代替常量,而不能代替表名、列名或其他数据库对象的名称 存储过程的创建 1 创建存储过程的格式(续) 数据类型:参数的数据类型,所有数据类型都可以作为存储过程的参数。但是cursor数据类型只能用于output参数。如果指定的数据类型为cursor,也必须同时指定varying 和output关键字。 Varying:指定作为输出参数支持的结果集,仅适用于游标参数。 默认值:参数的默认值,如果定义了默认值,可以不必指定参数的值即可执行存储过程。默认值通常为null或常量。 Output:表明该参数是返回参数,使用该参数可以将信息返回给调用过程,text,ntext 和image参数可用于output参数。 Recompile:表明不保存该存储过程的执行计划,该存储过程将在运行时重新编译。 Encryption:指定sql server对syscomments表中包含本create procedure语句文本的条目进行加密,在执行’exec sp_helptext 触发器名/存储过程名’时看不到定义触发器/存储过程的语句。 AS:用于指定该存储过程要执行的操作。 Sql语句:存储过程中要包含的sql 语句。 存储过程的创建 例:创建一个存储过程,可以将所有学生的入学成绩增加10% create procedur

文档评论(0)

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

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

1亿VIP精品文档

相关文档