存储过程与触发器的应用

php中文网
发布: 2016-06-07 16:10:10
原创
2325人浏览过

一、实验目的 1、掌握创建存储过程的方法和步骤; 2.掌握存储过程的使用方法; 3.掌握创建触发器的方法和步骤; 4.掌握触发器的使用方法。 二、实验内容 1、存储过程的创建、执行和删除; 2、触发器的创建、执行和删除。 三、实验步骤 1、存储过程的创建

一、实验目的

1、掌握创建存储过程的方法和步骤;

2.掌握存储过程的使用方法;

3.掌握创建触发器的方法和步骤;

4.掌握触发器的使用方法。

二、实验内容

1、存储过程的创建、执行和删除;

2、触发器的创建、执行和删除。

三、实验步骤

1、存储过程的创建、执行和删除。

1)使用S_C数据库中的S表、C表、SC表创建一个带参数的存储过程—cjjicx。该存储过程的作用是: 当任意输入一个学生的姓名时,将从三个表中返回该学生的学号、选修的课程名称和课程成绩。

cjjicx的创建语句:

CREATE PROCEDURE cjjicx

@name char(6)

AS

BEGIN

SELECT S.sno, C.cname, SC.grade FROM S, C, SC

WHERE S.sname = @name AND S.sno = SC.sno AND SC.cno = C.cno

END

2)执行cjjicx存储过程,查询“刘晨”的学号、选修课程和课程成绩。

执行语句:

EXEC cjjicx @name = '刘晨'

结果描述:

3)使用系统存储过程sp_helptext查看存储过程cjjicx的文本信息。

查看结果描述:

sp_helptext cjjicx

4)使用S-C数据库中的S表,为其创建一个加密的存储过程—jmxs。该存储过程的作用是:当执行该 存储过程时,将返回计算机系学生的所有信息。

jmxs创建语句:

CREATE PROCEDURE mxs WITH ENCRYPTION

AS

BEGIN

SELECT * FROM S

END

5)执行jmxs存储过程,查看计算机系学生的情况。

执行语句:

EXEC mxs

结果描述:

SP_HELPTEXT mxs

6)删除jmxs存储过程。

删除语句:

DROP PROCEDURE mxs

2、触发器的创建、执行和删除。

1)在S_C数据库中建立一个名为insert_xh的INSERT触发器,存储在SC表中。该触发器的作用是: 当用户向SC表中插入记录时,如果插入了在S表中没有的学生学号sno,则提示用户不能插入记录, 否则提示记录插入成功。

insert_xh的创建语句:

WiseHome家政预约小程序
WiseHome家政预约小程序

家政服务平台系统包含家用电器安装清洗、搬家、家电维修、管道疏通、月嫂保姆、育儿陪护、上门开锁等多种服务项目,用户可以直接通过家政小程序咨询,在线预约服务类型,同时还设置有知识科普,给用户科普一些清洁保养小技巧,让用户能够足不出户就可以直接预约服务,方便又快捷。本项目使用微信小程序平台进行开发。使用腾讯专门的小程序云开发技术,云资源包含云函数,数据库,带宽,存储空间,定时器等,资源配额价格低廉,无需

WiseHome家政预约小程序 0
查看详情 WiseHome家政预约小程序

CREATE TRIGGER insert_xh ON SC

AFTER INSERT

AS

BEGIN

IF(SELECT COUNT(*) FROM inserted JOIN S ON S.sno = inserted.sno) = 0

BEGIN

ROLLBACK TRAN

PRINT '用户不能插入记录'

END

ELSE

PRINT '记录插入成功'

END

2)为S_C数据库中的S表创建一个名为dele_stu的DELETE触发器,该触发器的作用是禁止删除S 表中的记录。

dele_stu的创建语句:

CREATE TRIGGER dele_stu ON S

AFTER DELETE

AS

BEGIN

ROLLBACK TRAN

PRINT '禁止删除'

END

3)为S_C数据库中的SC表创建一个名为update_grade的UPDATE触发器,该触发器的作用是禁止更 新SC表中的grade字段的内容。

update_grade的定义语句:

CREATE TRIGGER update_grade ON SC

FOR INSERT, UPDATE

AS

DECLARE @grade1 INT;

DECLARE @grade2 INT;

SELECT @grade1 = inserted.grade FROM inserted

SELECT @grade2 = deleted.grade FROM deleted

BEGIN

IF(@grade1 != @grade2)

BEGIN

PRINT '不能修改分数'

ROLLBACK TRAN

END

END

4)删除update_grade触发器。

删除update_grade触发器的命令:

DROP TRIGGER update_grade

四、实验总结

最最基础的

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号