数据库存储过程练习附答案

更新时间:2023-06-08 08:52:41 阅读: 评论:0

存储过程、触发器练习
1、在学生选课数据库中,创建一存储过程deptmale,查询指定系的男生人数,其中系为输入参数,人数为输出参数。
create proc p_dept
孕妇可以用花露水吗
@dept char(20),@mannum int output
as
lect @allcre=count(sno) from student
where sdept=@dept and sx='男'
declare @num int
exec三大自然区 p_dept '计算机系',@num output
print @num
我和室友
2、在s_c数据库中,创建一个存储过程totalcredit,根据输入的学生姓名,计算其总学分。(使用输出参数)。并执行该存储过程。
create proc p_cou
@name char(10),@allcre int output
as
lect @allcre=sum(ccredit) from student,cour,sc
where student.sno=sc1940年属什么生肖.sno and cour.cno=sc.cno
and sname=@name group by sc.sno
declare @asum int
exec p_cou '刘晨',饺子英语怎么说@asum output
print @asum
3、创建一更新触发器upd_grade,设置sc表的grade字段不能被更新,并显示信息学生成绩不能被修改,请与教务处联系
CREATE TRIGGER mes_sc
ON sc
FOR UPDATE
AS
IF UPDATE(grade)
BEGIN
ROLLBACK TRAN
PRINT '学生成绩不能被修改,请与教务处联系'
END
4、创建一个inrt触发器uninrtstu,当在student表中插入一条新纪录时,如果是“计算机系”的学生,则撤销该插入操作,并返回“此系人数已满,不能再添加”信息。
create trigger unisnertstu
on student for inrt
as
if exists (lect * from inrted where sdept='计算机系')
begin
print '此系人数已满,不能再添加'
rollback transaction
end
无花果泡酒4、创建一删除触发器tri_xs,功能是当某个学生从student表中被删除时,同时也删除sc表
束河古镇在哪里中该学生的相关记录。
USE 学生选课
GO
CREATE TRIGGER tri_xs
ON student
FOR DELETE
乘人不备打一字AS
DELETE sc
WHERE sno IN (SELECT sno FROM DELETED)
GO
5、在学生选课数据库中,创建一学生联系方式表stu_info(id,sno,sname,address,phone)。其中id是自动编号。并向该表中插入一条记录(0611105,李雷,汉正街5号,1111111)。
6、在创建的stu_info表中,查找是否有‘王梅梅’同学,如果没有,则在此表中添加该记录(0611108,王梅梅,人民路1号,22222222),编程实现将此信息添加到表中。
declare @id int
t IDENTITY_INSERT stu_info ON
if exists(lect * from stu_info where sname='王梅梅')
begin
  print '此人已存在.'
end
el
begin
  lect @id=max(id) from stu_info
  t @id=@id+1
  inrt into stu_info(id,sno,sname,address,phone) values(@id,'0611108','王梅梅','人民路1号','22222222')
end

本文发布于:2023-06-08 08:52:41,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1021763.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:学生   表中   创建   不能   人数   过程
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图