20131120298-王定晓-实验三
更新时间:2023-12-29 22:37:01 阅读量: 教育文库 文档下载
- 20131120农历推荐度:
- 相关推荐
云南大学软件学院
实 验 报 告
课程: 数据库原理与实用技术 任课教师: 蔡莉 实验指导教师(签名): 学号:20131120298 姓名: 王定晓 专业: 软件工程 日期: 2013/4/18 成绩:
SQL Server 实验3 存储过程和触发器的使用
一、实验目的
(1)掌握创建和执行存储过程的方法。 (2)掌握创建和执行触发器的方法
二、实验内容
注意:使用第二次实验中所创建的“Students”数据库来完成本实验。
1、使用不带参数的存储过程
(1)创建一个存储过程my_proc,查询“学生表”中所有计算机系女生的学号、姓名、性别、年龄和所在院系。
CREATE PROC my_proc AS select 学号,姓名,性别,所在院系 FROM 学生表 WHERE 性别='女' AND 所在院系='计算机' (2)执行存储过程
exec my_proc
(3)修改存储过程,使其能够查询计算机系女生的所有基本信息 ALTER proc my_proc
AS select * FROM 学生表
WHERE 性别='女' AND 所在院系='计算机'
2、带输入参数的存储过程
(1)创建一个存储过程my_procgender,使其能够查询“学生表”中男学生或女学生的学号、姓名、性别、年龄和所在院系
1
CREATE proc my_procgender @gender varchar(2) AS select 学号,姓名,性别,年龄,所在院系 FROM 学生表 WHERE 性别=@gender (2)执行存储过程
3、带输入/输出参数的存储过程
(1)创建一个存储过程my_procclass,使其能够根据学生姓名,查询学生所在班级。不存在时给出提示信息)
CREATE proc my_procclass @name varchar(10),@age int OUTPUT AS IF EXISTS(select 年龄 from 学生表 where 姓名=@name) BEGIN SELECT @age=年龄 FROM 学生表 where 姓名=@name return -100 END ELSE return -101
(2)执行存储过程
declare @a int declare @b int exec @b=my_procclass @name='肖竹',@age=@a OUTPUT print '返回值:'+convert(varchar(10),@b) IF(@b=-100) BEGIN 2
(考虑当学生print '年龄:'+convert(varchar(10),@a) END ELSE print '未找到' 4、返回状态值的存储过程
(1)创建一个存储过程my_procstatus,使其能够根据学生学号,查询学生的选课信息。(如果没有输入学生学号,返回状态码55;如果输入的学生学号不存在,则返回状态码-155) create proc my_procstatus @name varchar(10),@course varchar(10) output as if @name='' return 55 else begin if not exists(select * from 学生表 where 姓名=@name) return -155 else select @course=课程名 from 课程表 where 课程号 in (select 课程号 from 成绩表 where 学号 in (select 学号 from 学生表 where 姓名=@name))
end
(2)执行存储过程:接收存储过程返回的状态码,如果返回的状态码为55则输出提示信息“没有输入学号!!”;如果返回的状态码为-155,则输出“没找到!!”。 declare @a int declare @c varchar(10) exec @a=my_procstatus @num=, @course=@c output if @a=55 print'没有输入学号' else begin if @a=-155 print '没找到或未选课' else print '该学生选了'+convert(varchar(10),@c) end (3)删除存储过程
drop proc my_procstatus
5、在成绩表中创建一个触发器。
(1)修改成绩表,新增一个“备注”列,数据类型为char(10),给出修改的SQL语句。 alter table 成绩表 add 备注 char(10)
(2)在成绩表中创建一个名为mytrigger的触发器,当对该表录入成绩信息或修改成绩列时,如果分数小于60分,则将备注列的内容写为“不及格”。给出创建触发器的SQL语句。 CREATE TRIGGER mytrigger
3
ON 成绩表 FOR Insert,Update AS IF EXISTS(select 成绩 from 成绩表 where 成绩<60) UPDATE 成绩表 set 备注 = '不及格' where 学号 in (select 成绩 from 成绩表 where 成绩<60) return
(3)给出运行该触发器的一个SQL语句。
UPDATE 成绩表 set 成绩 = 55 where 学号 = 20023001
4
正在阅读:
20131120298-王定晓-实验三12-29
2017-2018学年人教版小学三年级语文下学期五月份月考测试卷05-14
数据库答案11-01
第一学期高中化学总复习化学平衡常数创新教学设计学习精品 - 图文11-30
国家级新区有哪些?02-15
行政职业能力测试每日一练试题(1.16)03-19
第一单元 计量资料的统计描述11-08
2022年南京林业大学机械电子工程学院831机械设计考研导师圈点必04-08
国际商法课后习题答案01-05
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 20131120298
- 实验
- 王定晓
- 中经常出现的同义词、易混淆词辨析
- 2015-2020年中国白酒包装市场发展现状及投资前景分析报告 - 图文
- 初中语文字词学习策略的研究
- 框架结构梁柱节点施工论文
- 谈阅读教学中如何培养学生语感
- 河南省高校第二届青年教师数学教学技能竞赛第三次通知
- 中职语文教学有效性论文
- 13坛子的故事
- 烟草专卖局《廉政准则》贯彻执行情况自查报告
- 饲料添加剂申报材料要求
- 大学化学实验思考题
- 2015年6月27日雅思真题答案
- 2014台湾省事业单位考试公共基础真题演练汇总
- 青岛版一年级数学下册期末测试题
- 语文中考总复习作文创新导写
- 四年级下数学思维训练123
- 1.初步设计说明
- 关于乡镇政权运行情况的调查与思考
- 常用指示剂的配制
- 2015年度什邡市新世纪农业科技发展有限公司销售收入与资产数据报告 - 图文