实验6数据库实验——存储过程和触发器

  • 格式:docx
  • 大小:97.55 KB
  • 文档页数:20

下载文档原格式

  / 20
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验6存储过程与触发器、实验目的

1、加深与巩固对存储过程与触发器概念的理解。

2、掌握触发器的简单应用。

3、掌握存储过程的简单应用。

二、实验内容

一)存储过程:

1、创建一存储过程,求1+2+3+…+n并打印结果。

CREATE PROCEDURE addresult

AS

DECLARE @n int =10, /* 最后一个数*/

@i int =0,

@result int =0 /* 结果*/

BEGIN

WHILE (@i <=@r)

BEGIN

SET @result =@result +@i

SET @i =@i+1

END

PRINT '1+2+3+ 、、、+n 的结果就是:'

PRINT @result

RETURN( @result )

END

GO

2•调用上面的addresult存储过程打印l十2+3+…+10的结果EXEC addresult

3、修改上述存储过程为addresultl,使得@n为输入参数,其具体值由用户调用此存储过程时指定。

CREATE PROCEDURE addresultl

@n int =10 /* 最后一个数*/

AS

DECLARE @i int =0,

@result int =0 /* 结果*/

BEGIN

WHILE (@i <=@r)

BEGIN

SET @result =@result +@i

SET @i =@i+1

END

PRINT '1+2+3+ 、、、+n 的结果就是:’

PRINT @result

RETURN( @result )

END

GO

*

命令已成9閘克

4、调用上面修改后的addresultl存储过程,打印1+2+3十…+100的结果。

EXEC addresultl 100

心消息

1+2+3+..- 如瞬果是:

他0

5•修改上述存储过程为addresult2,将@n参数设定默认值为10,并改设

@sum为输出参数,让主程序能够接收计算结果。

CREATE PROCEDURE addresult2

@n int =10, /* 最后一个数*/

@sum int out /* 结果*/

AS

DECLARE @i int =0

BEGIN

set @sum =0

WHILE (@i <=@r)

BEGIN

SET @sum =@sum+@i

SET @i =@i+1

END

END

GO

6. 调用上面修改后的addresult2存储过程,设置变量@s接收计算

1+2+3+…+10的结果。

DECLARE @s int

set @s = 0

EXEC addresult2 10 , @sum=@s out

PRINT '1+2+3+ 、、、+n 的结果就是:'

PRINT @s

7. 创建一存储过程Proc_Student用于显示学号为“ 0102”的学生基本信息(包括学号、姓名、性别与系)。

CREATE PROCEDURE Proc_Student

AS

BEGIN

select *

from S

where S、sno =0102

END

EXEC Proc Student

8. 创建一存储过程Stu_grade通过读取某门课的编号,求出不及格的学生的学号。

CREATE PROCEDURE Stu_grade

@n char ( 10)

AS

BEGIN

select sno

from SC

where eno =@n and grade <60

END

GO

9•调用上面的存储过程Stu_grade求出课程编号为“ 0101 ”的不及格的学生

10. 创建一存储过程avgGrade通过读取学生的学号,以参数形式返回该学生的平均分。

CREATE PROCEDURE avgGrade

@n char ( 10)

AS

BEGIN

select AVG( grade )平均分

from SC

where sno =@n

group by sno

GO

11. 调用上面的存储过程avgGrade求出学号为“ 990102014”的平均分。

平均分

12. 删除上述存储过程avgGrade,

drop procedure avgGrade

—Lnr* ■■ 甘、—- r TT"■—- IB

-drop p.oced口工飪aT-cGrade|

鬲消息

13、创建存储过程search该存储过程有三个参数,分别为@t、@p1,@p2, 根据这些参数,找出书名与@t有关,价格在@p1与@p2(@p2>=@p1之间的书的编号,书名,价格,出舨日期。如果用户调用时没有指定@t参数的值.则表示可为任意值,如用户没有指定@p2,则书本价格没有上

限。用到的关系为:titles (title_id,title,price,pubdate)。

CREATE PROCEDURE search

@t char ( 10 )= "%",

@p1 char (10 ),

@p2 char (10)=NULL

AS

BEGIN