《数据库原理与应用》实验存储过程和触发器(部分答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验6存储过程和触发器
1.实验目的
(1)掌握通过SQL Server管理平台和Transact-SQL语句CREATE PROCEDURE创建存储过程的方法和步骤。
(2)掌握使用Transact-SQL语句EXECUTE执行存储过程的方法。
(3)掌握通过SQL Server管理平台和Transact-SQL语句ALTER PROCEDURE修改存储过程的方法。
(4)掌握通过SQL Server管理平台和Transact-SQL语句DROP PROCEDURE删除存储过程的方法。
(5)掌握通过SQL Server管理平台和Transact-SQL语句CREATE TRIGGER创建触发器的方法和步骤。
(6)掌握引发触发器的方法。
(7)掌握使用SQL Server管理平台或Transact-SQL语句修改和删除触发器。
(8)掌握事务、命名事务的创建方法,了解不同类型的事务的处理情况。
2.实验内容及步骤
请先附加studentsdb数据库,然后完成以下实验。
(1)在查询设计器中输入以下代码,创建一个利用流控制语句的存储过程
letters_print,该存储过程能够显示个小写字母。
语句:
CREATE PROCEDURE letters_print
AS
DECLARE@count int
SET@count=0
WHILE@count<26
BEGIN
PRINT CHAR(ASCII('a')+@count)
SET@count=@count+1
END
exec letters_print
(2)输入以下代码,创建存储过程stu_info,执行时通过输入姓名,可以查询该姓名对应的学生的各科成绩。
语句:
create proc stu_info
@name char(10)
as
begin
SELECT姓名,g.课程编号,分数
FROM dbo.student_info s JOIN grade g
ON s.学号=g.学号
WHERE s.姓名=@name
End
exec stu_info'马东'
(3)使用系统存储过程sp_rename将存储过程stu_grade更名为stu_g。
答:sp_rename stu_grade,stu_g
(4)使用grade表。
①创建一个存储过程stu_g_r,当输入一个学生的学号时,通过返回输出参数获取该学生各门课程的平均成绩。
create proc stu_g_r
@sid char(4),
@point decimal(3,1)output
as
select@point=AVG(分数)from grade
group by学号
having学号=@sid
go
declare@point decimal(3,1)
exec stu_g_r'0002',@point output
select@point平均成绩
②执行存储过程stu_g_r,输入学号'0002'。
declare@ave decimal(3,1)
exec stu_g_r'0002',@ave output
③显示'0002'号学生的平均成绩。
语句:
select@ave平均成绩
--select * from grade
(5)使用Transact-SQL语句DROP PROCEDURE删除存储过程stu_g_r。
语句:drop proc stu_g_r
(6)自己举例,说明 INSTEAD OF触发器与AFTER触发器不同点。
语句:。