《数据库存储过程练习附答案(共3页).doc》由会员分享,可在线阅读,更多相关《数据库存储过程练习附答案(共3页).doc(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上存储过程、触发器练习1、在学生选课数据库中,创建一存储过程deptmale,查询指定系的男生人数,其中系为输入参数,人数为输出参数。create proc p_deptdept char(20),mannum int outputasselect allcre=count(sno) from student where sdept=dept and ssex=男declare num intexec p_dept 计算机系,num outputprint num2、在s_c数据库中,创建一个存储过程totalcredit,根据输入的学生姓名,计算其总学分。(使用输出参
2、数)。并执行该存储过程。create proc p_couname char(10),allcre int outputasselect allcre=sum(ccredit) from student,course,sc where student.sno=sc.sno and o=o and sname=name group by sc.snodeclare asum intexec p_cou 刘晨,asum outputprint asum3、创建一更新触发器upd_grade,设置sc表的grade字段不能被更新,并显示信息“学生成绩不能被修改,请与教务处联系”。CREATE TRI
3、GGER mes_scON sc FOR UPDATEASIF UPDATE(grade)BEGINROLLBACK TRANPRINT 学生成绩不能被修改,请与教务处联系END4、创建一个insert触发器uninsertstu,当在student表中插入一条新纪录时,如果是“计算机系”的学生,则撤销该插入操作,并返回“此系人数已满,不能再添加”信息。create trigger unisnertstuon student for insertasif exists (select * from inserted where sdept=计算机系)begin print 此系人数已满,不能再
4、添加rollback transactionend4、创建一删除触发器tri_xs,功能是当某个学生从student表中被删除时,同时也删除sc表中该学生的相关记录。USE 学生选课GOCREATE TRIGGER tri_xsON studentFOR DELETEAS DELETE scWHERE sno IN (SELECT sno FROM DELETED)GO5、在学生选课数据库中,创建一学生联系方式表stu_info(id,sno,sname,address,phone)。其中id是自动编号。并向该表中插入一条记录(,李雷,汉正街5号,)。6、在创建的stu_info表中,查找是否
5、有王梅梅同学,如果没有,则在此表中添加该记录(,王梅梅,人民路1号,),编程实现将此信息添加到表中。declare id intset IDENTITY_INSERT stu_info ONif exists(select * from stu_info where sname=王梅梅) begin print 此人已存在. endelse begin select id=max(id) from stu_info set id=id+1 insert into stu_info(id,sno,sname,address,phone) values(id,王梅梅,人民路1号,) end专心-专注-专业