删除计算机系学生(在student表中),数据库存储过程练习附答案

本文介绍了如何在学生选课数据库中创建存储过程deptmale,用于查询指定系的男生人数,以及totalcredit存储过程,计算指定学生总学分。同时,定义了一个更新触发器upd_grade,阻止对学生成绩的直接修改,确保数据完整性。
摘要由CSDN通过智能技术生成

存储过程、触发器练习

1、在学生选课数据库中,创建一存储过程deptmale,查询指定系的男生人数,其中系为输入参数,人数为输出参数。

create proc p_dept

@dept char(20),@mannum int output

as

select @allcre=count(sno) from student

where sdept=@dept and ssex='男'

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

select @allcre=sum(ccredit)from student,course,sc

where=and=

and sname=@name group by

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值