存储过程触发器实例.doc

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

CREATE TABLE Student ( Sno CHAR(9) PRIMARY KEY, Sname CHAR(20) , Ssex CHAR(2), Sage int , Sdept CHAR(20) ) CREATE TABLE SC ( Sno CHAR(9), Cno CHAR(4), Grade int ) 存储过程 例1.带有 SELECT 语句的存储过程:列出计算机系学生的信息 CREATE PROCEDURE p_student1 AS SELECT * FROM student WHERE sdept = ‘计算机系‘ 调用:EXEC p_student1 例2.带有输入参数的存储过程:查询指定系部的学生信息。 CREATE PROCEDURE p_student2 @sdept as varchar(20) AS SELECT * FROM student WHERE sdept = @city 调用:EXEC p_student2 ‘计算机 EXEC p_student2 ‘信息技术 例3.带有多个输入参数并有默认值的存储过程:查询系部、指定年龄段的学生的信息。 CREATE PROCEDURE p_student3 @sdept char(20)=‘计算机,@ag1 int, @ag2 int AS SELECT * FROM student WHERE zdept = @zh and sage = @ag1 and sage = @ag2 按参数位置传递值 EXEC p_student3 ‘计算机’, 18,20 【顺序类型必须一致】 按参数名传递值 EXEC p_student3 @age1=18, @age2=20 , @sdept =‘计算机’ 【不关心参数定义的顺序,按名赋值】 *定义了默认值,可不为有默认值的参数提供值如: EXEC p_student3 @age1=18, @age2=20 EXEC p_student3 @sdept =‘计算机’,@age1=18, @age2=20 例4.带输出参数的存储过程。计算两个数的乘积,并将计算结果作为输出参数返回给调用者。 CREATE PROCEDURE p_multi @var1 int, @var2 int, @var3 int output As Set @var3 = @var1 * @var2 执行此存储过程: Declare @res int EXEC p_multi 5,7,@res output Print @res 注:调用时,输出参数名后加上: output 例5.带输入参数和一个输出参数的存储过程。统计指定系部的学生的平均年龄,并将统计的结果作为输出参数返回。 CREATE PROC p_Avgage @sdept varchar(20), @avg_age int output AS SELECT @avg_age = AVG(age) FROM student WHERE sdept = @sdept 执行此存储过程: DECLARE @age int EXEC p_Avgage ‘计算机系, @age output PRINT @age 例6.建立修改数据的存储过程。对学生成绩表,将指定课程号的学生成绩适当提高,增加的规则:如果成绩高于70,则提高10%;如果成绩在60~70之间,则提高20%,否则提高30%。 CREATE PROCEDURE p_update @code char(20) AS UPDATE 成绩表 SET 成绩 = 成绩 * case when 成绩 70 then 1.1 when 成绩 between 60 and 70 then 1.2 else 1.3 end WHERE 课程号 = @code 例7.建立删除数据的存储过程。对成绩表,删除指定课程号的不及格的学生的成绩记录。 CREATE PROCEDURE p_delete @code char(20) AS DELETE FROM 成绩表 WHERE 成绩 60 and 课程号 = @code 从存储过程中返回数据 例

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档