第八章存储过程和触发器bak.ppt
文本预览下载声明
3减少网络流量 存储过程可只用一条语句来实现. 4提高安全机制 8.2触发器 8.1.10 2 带输出参数的存储过程 @stuID Integer @stuID nvarchar(40) OUTPUT AS Select @stuName=Name from StuInfo Where stuID=stuID GO 执行 DECLARE @CName nvarchar(40) OUTPUT EXEC pscgz 001, @CName OUTPUT PRINT @CName GO 8.2.4, 1. 触发器的权限默任分配给表的所有者,且不能将权限转给其他用户 2,只能在当前数据库中建 3,不能再临时表中和系统表上建立触发器 4,必须指定一个有效选项 INSERT UPDATE DELETE 第8章 存储过程和触发器 8.1存储过程优点 1模块化程序设计 存储过程可保存在数据库中,以后可反复调用,并可以对其进行单独的修改和维护. 2提高执行速度 8.1存储过程 8.1.1概念 SQL Server的存储过程类似于编程语言中的过程。 在使用Transact-SQL语言编程的过程中,我们可以将某些需要多次调用的实现某个特定任务的代码段编写成一个过程,将其保存在数据库中,并由SQL Server服务器通过过程名来调用它们,这些过程就叫做存储过程。 8.1存储过程 8.1.2分类 系统存储过程 在SQL Server2000中,很多管理活动都是通过系统存储过程执行的。像我们以前讲过的创建登录账号,创建数据库用户账号,创建角色等等。 用户自定义的存储过程 是用户自己根据需要编写的存储过程。 8.1存储过程 8.1.4创建存储过程 例如: 在销售公司,员工的工资是和销售额挂勾的,销售额在0-500,开基本工资的50%,销售额在500-1000,开基本工资,销售额在1000-2000,开基本工资的1.5倍。 表:employee empid int empname char jbgz float sse float gz float 8.1存储过程 语法 CREATE PROCEDURE 存储过程名 AS 语句体; GO 8.1存储过程 在企业管理器中创建存储过程 一、存储过程 8.1存储过程 在查询分析器中创建存储过程 8.1存储过程 在查询分析器中创建存储过程 USE student GO IF EXISTS (select name from sysobjects where name=pscgz1 and type=P) DROP PROCEDURE pscgz1 GO CREATE PROCEDURE pscgz1 AS update 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 8.1存储过程 8.1.5执行存储过程 要想执行存储过程,要进入到查询分析器中,执行SQL语句: exec 存储过程名; 8.1存储过程 8.1.6修改存储过程 一、存储过程 8.1存储过程 8.1.7重命名存储过程 8.1.8删除存储过程 8.1.10参数化存储过程 带输入参数的存储过程 CREAT PROCEDURE pscgz @stuID Integer AS Select * from stuInfo where stuID= @s
显示全部