存储过程与触发器演示文件修改版.pptVIP

  • 3
  • 0
  • 约7.38千字
  • 约 69页
  • 2017-02-09 发布于江苏
  • 举报
存储过程与触发器演示文件修改版

9.6 案例中的存储过程 1. 创建一个查询存储过程 USE student GO ┄如果存储过程TEACHER存在,将其删除 IF EXISTS(SELECT NAME FROME SYSOBJECTS WHERE NANE=’TEACHER’ AND TYPE=’P’) DROP PROCEDURE TEACHER GO ┄建立一个查询存储过程 CREATE PROCEDURE TEACHER ┄查询选项 WITH ENCRYPTION AS SELECT 姓名,职称 FROM 教师,系部 WHERE 系部.系部代码=教师.系部代码 and 系部.系部名称=计算机 GO ┄执行TEACHER EXEC TEACHER GO 2. 创建带输入参数的存储过程 USE student GO ┄如果存储过程教师查询存在,将其删除 IF EXISTS(SELECT NAME FROME SYSOBJECTS WHERE NANE=’教师查询’ AND TYPE=’P’) DROP PROCEDURE教师查询 GO ┄创建一个带参数的存储过程 教师查询 CREATE PROCEDURE 教师查询 @XIBIE CHAR(8) ┄查询选项 WITH ENCRYPTION AS SELECT 教师.姓名,教师.职称,教师.职务 FROM 教师,系部 WHERE 系部.系部代码=教师.系部代码 and 系部.系部名称=@XIBIE ORDER BY 教师.教师编号 GO ┄执行存储过程,并向存储过程传递参数。 EXEC教师查询 计算机 GO 3. 创建带输出参数的存储过程 USE Student GO ┄如果存储过程单科成绩分析存在,将其删除 IF EXISTS(SELECT NAME FROME SYSOBJECTS WHERE NANE=’ 单科成绩分析’ AND TYPE=’P’) DROP PROCEDURE单科成绩分析 GO ┄创建存储过程 单科成绩分析 ┄定义一个输入参数KECHENGMING ┄定义三个输出参数 AVGCHENGJI,MAXCHENGJI和MINCHENGJI,用于接受平均成绩,最高成绩和最低成绩 CREATE PROCEDURE 单科成绩分析 @KECHENGMING VARCHAR(20) @AVGCHENGJI tinyint OUTPUT, @MAXCHENGJI tinyint OUTPUT, @MINCHENGJI tinyint OUTPUT, AS SELECT @AVGCHENGJI=AVG(成绩),@MAXCHENGJI=MAX (成绩), @MINCHENGJI=MIN (成绩) FROM 课程注册 WHERE 课程号 (SELECT课程号 FROM 课程 WHERE 课程名=@KECHENGMING) GO USE STUDENT ┄声明四个变量,用于保存输入和输出参数 DECLARE @KECHENGMING VARCHAR(20) DECLARE @AVGCHENGJI tinyint OUTPUT DECLARE @MAXCHENGJI tinyint OUTPUT DECLARE @MINCHENGJI tinyint OUTPUT ┄为输出参数赋值 SELECT @KECHENGMING=’计算机’ ┄执行存储过程 EXEC成绩查询 1 @KECHENGMING, @AVGCHENGJI1 OUTPUT, @MAXCHENGJI1 OUTPUT, @MINCHENGJI1 OUTPUT ┄显示结果 SELECT @KECHENGMING AS课程名, @ AVGCHENGJI1 AS 平均成绩, @ MAXCHENGJI 1 AS最高成绩, @ MINCHENGJI 1 AS最低成绩 GO 9.7 触发器综述 9.7.1 触发器的概念 触发器是一种特殊类型的存储过程,它也是由T-SQL语句组成,可以完成存储过程能完成的功能,但是它具有自己的显著的特点:它与表紧密相连,可以看做表定义的一部分;它不可能通过名称被直接调用,更不允许参数,而是当用户对表中的数据进行修改时,自动执行;它可以用于 SQL Server约束,默认值和规则的完整性检查,实施更为复杂的数据完整性约束。 9.7.2 触发器的优点 触发器包含复杂的处理逻辑,能够实现复杂的完整性约束。同其他约束相比,它主要有以下优点: (1)?????? 触发器自动执行。在对表中的数据做了任何修改(如手工输入或者通过应用程序实现的修改)之后立即被激活。 (2)?????? 触发器能够对数据库中的相关表实现级联更改。触发器是基于一个表创建的,但是可以

文档评论(0)

1亿VIP精品文档

相关文档