存储过程与触发器的应用
一、实验目的
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的创建语句:
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
四、实验总结
最最基础的
存储过程与触发器的应用相关推荐
- MySQL存储过程和触发器的实现--数据库学习笔记
从MySQL5.0版本开始就对存储过程和触发器进行了支持,在MySQL进行学习前,先查看您所使用的版本吧,方法有: 1.$mysql -V //linux终端下 2.select version() ...
- 什么是存储过程?什么是触发器?SQL中存储过程与触发器的区别是什么?
什么是存储过程?什么是触发器?SQL中存储过程与触发器的区别是什么? 存储过程是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名 ...
- 存储过程,触发器,函数
学SQL已经几年了,平时的工作,一般都可以应付. 真正对SQL发生质的理解的阶段,还是做报表的那份工作.经常需要用SQL去取数据, 分析数据,分组数据,按部门,按组别,按员工统计数据,有时候SQL里不 ...
- 获取MSSQL Server中的相关信息(视图、存储过程、触发器、表)
在SQL SERVER得到某个数据库下面所有的表.视图.存储过程.触发器 select name from sysobjects where xtype='TR' --所有触发器 select nam ...
- mysql 动态传入表名 存储过程_面试再问MySQL存储过程和触发器就把这篇文章给他...
Mysql存储过程及触发器trigger 存储过程 一.一个简单的存储过程 1,一个简单的存储过程 delimiter $$create procedure testa()begin Select * ...
- 数据库原理与应用(SQL Server)笔记 第九章 存储过程和触发器
目录 前言 一.存储过程 (一)存储过程的定义 (二)存储过程的特点 (三)存储过程的分类 1.用户存储过程 2.系统存储过程 3.扩展存储过程 (四)存储过程的创建 (五)存储过程的执行 (六)带参 ...
- 一条SQL语句查询数据库中的所有表、存储过程、触发器
一条SQL语句查询数据库中的所有表.存储过程.触发器 (sysobjects表信息) 该条语句查询返回所有的用户表 select * from sysobjects where xtype='u' ...
- 【SQL】存储过程procedure 触发器trigger
关于存储过程和触发器,虽然之前听过它们,但一直都没有怎么实践过.最近在项目过程中使用到了存储过程和触发器,趁热打铁,把它们总结一下.希望对您有所帮助. procedure: what? 一般在 ...
- oracle触发和存储过程,Oracle存储过程与触发器
Oracle存储过程与触发器 存储过程 存储过程最直接的理解:就是保存了批量的sql(select,insert,if for),以后可以通过一个名字把这些批量的sql执行,使用存储过程在大批量数据查 ...
- Oracle中通过Function,存储过程,触发器,调用实现解析Clob字段中存在的xml字符串...
摘要:接着之前的问题,在Oracle数据库中通过Function,存储过程,触发器实现解析数据表中CLOB大数据字段中存在的xml字符串有时,有个特殊的时间字符串要在数据库格式化处理,之前解析过来的时 ...
最新文章
- Linux终端C语言实现图片拷贝
- 云服务和独立服务器 我们应该怎么选?
- 数据结构和算法:第八章 图论算法
- Spring Boot中使用Swagger2构建RESTful APIs
- NLP:NLP领域没有最强,只有更强的模型——GPT-3的简介、安装、使用方法之详细攻略
- 渝粤教育 陕西师范大学 《JAVA程序设计》作业
- [1] SDK Tools安装
- Python with和contextlib.closing配合使用(contextlib)
- 数据结构:二叉排序树
- oracle sql的正则表达式,Oracle SQL 语句中正则表达式的应用
- GD32F103实战笔记
- 【路径规划】基于A星算法机器人走迷宫路径规划matlab代码
- 如何升级自己的思维?成为你想成为的自己。
- 【存储】RAID0、RAID1、RAID3、RAID5、RAID6、混合RAID10、混合RAID50
- 安超OS为企业数字化转型构建坚实的云基座
- html5 评测 小米6,小米6X和小米6哪个好?小米6与6X区别对比全面评测
- P1717 钓鱼 题解
- 猪齿鱼(Choerodon UI )dataSet.delete通用删除的封装 —— 解决两个dataSet.delete的自身问题
- cm60消费机说明书_中控CM50、CM60消费机二次开发SDK
- java单引号 python_单引号与Python中的双引号
热门文章
- Linq To Sql进阶系列(七)动态查询续及CLR与SQL在某些细节上的差别
- 调试maven源代码
- Linux的Vim编辑器
- 通用分页查询存储过程
- git在跟踪bug中的使用
- 汇编语言:第三章 寄存器(内存访问)
- asp.net mvc3 网站退出系统后使用浏览器的回退按钮依然能返回到内容页的处理方法...
- Linux下之使用简单3种创建文件的命令,并实现一个Html和JavaScript小程序
- IoC、Spring 环境搭建、Spring 创建对象的三种方式、DI
- SpringBoot集成Cache缓存(Ehcache缓存框架,注解方式)