SQL Server2008触发器练习题.doc

SQL Server2008触发器练习题.doc

ID:57690698

大小:28.00 KB

页数:6页

时间:2020-09-01

SQL Server2008触发器练习题.doc_第1页
SQL Server2008触发器练习题.doc_第2页
SQL Server2008触发器练习题.doc_第3页
SQL Server2008触发器练习题.doc_第4页
SQL Server2008触发器练习题.doc_第5页
资源描述:

《SQL Server2008触发器练习题.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、触发器练习题1、创建触发器在学生信息管理系统中,学生信息表包含列“学号”、“姓名”、“性别”、“出生年月”、“班级号”;班级信息表中包含列“班级号”、“班级名称”、“人数”;课程信息表包含列“课程代号”、“课程名称”;学生成绩表包含列“学号”、列“课程代号”、列“成绩”,已用约束保证成绩的范围为0~100分。(用附录中的脚本创建)--1)在student上创建INSERT触发器stu_insert,要求在student表中插入记录时(要求每次只能插入一条记录),这个触发器都将更新class表中的class_nun列。并测试触发器stu_insert。cre

2、atetriggerstu_insertonstudentforinsertasif@@rowcount>1beginRAISERROR('Youcannotinsertmorethanonestudentatatime.',16,1)ROLLBACKTRANreturn--注意此处的return语句不能省略,因为在触发器脚本中的ROLLBACKTRAN语句之后还存在语句,那么将会执行这些语句,而为了其后的语句不执行,必须加入return语句endupdateclasssetclass_num=class_num+1whereclass_id=(selec

3、tclass_idfrominserted)print'class表中数据更新成功'go--测试1insertintostudentselect'','丽','女','1986-07-11','0601'unionallselect'','梅','女','1988-02-07','0601'--测试2insertintostudentvalues('','文','女','1986-09-21','0602')--2)修改题1中创建的INSERT触发器stu_insert,要求在student表中插入记录时(允许插入多条记录),这个触发器都将更新class表

4、中的class_nun列。并测试触发器stu_insert。altertriggerstu_insertonstudentforinsertasupdateclasssetclass_num=class_num+(selectcount(class_id)frominsertedwhereclass.class_id=inserted.class_id)print'class表中数据更新成功'go--测试1insertintostudentselect'','丽','女','1986-07-11','0601'unionallselect'','梅','女

5、','1988-02-07','0601'--测试2insertintostudentvalues('','文','女','1986-09-21','0602')--3)在student上创建DELETE触发器stu_delete,要求在student表中删除记录时,这个触发器都将更新class表中的class_nun列。并测试触发器stu_delete。createtriggerstu_deleteonstudentfordeleteasupdateclasssetclass_num=class_num-(selectcount(class_id)fro

6、mdeletedwhereclass.class_id=deleted.class_id)go--测试1deletefromstudentwherestu_id=''--测试2deletefromstudent--4)为防止其他人修改成绩,在score上创建UPDATE触发器sc_update,要求不能更新score表中的score列。测试触发器sc_update。createtriggersc_updateonscoreforupdateasifupdate(score)beginprint'不允许修改score列'rollbacktranendgo--

7、尝试修改score列updatescoresetscore=992、查看触发器相关信息:使用系统存储过程sp_help,sp_helptext,sp_helptrigger查看触发器相关信息。execsp_helpexecsp_helpsc_updateexecsp_helptextsc_updateexecsp_helptriggerstudentexecsp_helptriggerstudent,'insert'--附录:--创建数据库,准备数据createdatabasestudent_scoreGO--在数据库中创建三个表的结构usestudent

8、_scoreGOcreatetablestudent(stu_id

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。