课题-第八章存储过程和触发器.pptx

  1. 1、本文档共65页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八章 存储过程和触发器一、存储过程二、触发器一、存储过程1、概念 SQL Server的存储过程类似于编程语言中的过程。 在使用Transact-SQL语言编程的过程中,我们可以将某些需要多次调用的实现某个特定任务的代码段编写成一个过程,将其保存在数据库中,并由SQL Server服务器通过过程名来调用它们,这些过程就叫做存储过程。 一、存储过程 存储过程是一组预先编译好的T-SQL代码,作为一个整体用于执行一系列特定的操作。 存储过程属于数据库对象,它们存放在数据库中,需要时用户可以调用它们,可以通过应用程序调用它们,也可以在查询分析器中调用它们,也可以在一个存储过程调用另一个存储过程。 一、存储过程2、分类系统存储过程 在SQL Server2000中,很多管理活动都是通过系统存储过程执行的。像我们以前讲过的创建登录账号,创建数据库用户账号,创建角色等等。 系统存储过程创建和保存在master数据库中,都是以“sp_”为前缀的,可以在任何数据库中使用系统存储过程。用户创建的存储过程最好不要以“sp_”为前缀。一、Intranet概述 一、存储过程用户自定义的存储过程  是用户自己根据需要编写的存储过程。一、存储过程3、优点实现了模块化编程 存储过程经过了一次创建以后,可以被调用无数次。用户可以独立于应用程序而对存储过程进行修改。可以按照独特的功能模式设计不同的存储过程以供使用。 一、存储过程存储过程具有对数据库立即访问的功能 存储过程作为一个独立的数据库对象,可以作为一个单元被用户的应用程序调用。 由于存储过程是已经编译好的代码,所以执行的时候不必再次进行编译,从而提高了程序的运行效率。一、存储过程存储过程可以减少网络流量 存储过程中可以包含大量的Transact-SQL语句,但存储过程作为一个独立的单元来使用。在进行调用时,只需要使用一个语句就可以实现,所以大大减少了网络上数据的传输。 一、存储过程存储过程可以加快程序的运行速度 存储过程在创建时就经过了语法检查和性能优化,因此在执行时不必再重复这些步骤。存储过程在经过第一次调用之后,就驻留在内存中,不必再经过编译和优化,所以执行速度快。 在有大量批处理的Transact-SQL语句要重复执行的时候,使用存储过程可以极大地提高运行效率。一、存储过程存储过程可以提高数据库的安全性 可以设置用户通过存储过程对某些关键数据进行访问,但不允许用户直接使用T-SQL或企业管理器对数据进行访问。 一、存储过程4、创建存储过程例如: 在销售公司,员工的工资是和销售额挂勾的,销售额在0-500,开基本工资的50%,销售额在500-1000,开基本工资,销售额在1000-2000,开基本工资的1.5倍。 表:employeeempid int empname charjbgz floatsse floatgz float一、存储过程一、存储过程语法CREATE PROCEDURE 存储过程名 AS 语句体;GO一、存储过程在企业管理器中创建存储过程操作: 在企业管理器中打开服务器→数据库→存储过程→右键→新建存储过程 一、存储过程一、存储过程一、存储过程一、存储过程CREATE  PROCEDURE pscgz ASupdate employee set gz=jbgz*0.5 where sse500;update employee set gz=jbgz*1.0 where sse=500 and sse1000;update employee set gz=jbgz*1.5 where sse=1000 and sse2000;GO一、存储过程在查询分析器中创建存储过程 一、存储过程一、存储过程USE studentGOIF EXISTS (select name from sysobjects where name=pscgz1 and type=P)DROP  PROCEDURE pscgz1GO(--检查是否有同名的存储过程,如果有,则首先删除这个存储过程。Sysobjects是系统表,表中存放的是这个数据库中的对象)CREATE  PROCEDURE  pscgz1 ASupdate employee set gz=jbgz*0.5 where sse500;update employee set gz=jbgz*1.0 where sse=500 and sse1000;update employee set gz=jbgz*1.5 where sse=1000 and sse2000;GO一、存储过程注意: 创建存储过程时可以传递参数, 一种是输入参数,也就是执行这个存储过程需要的参数,还有一种是输出参数,也就是执行完这个存储过程如果有返回值的话可以由

文档评论(0)

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

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

1亿VIP精品文档

相关文档