您好,欢迎访问三七文档
实验报告专业:电子商务班级:12科技1班学号:201224131118姓名:张育波课程名称:数据库系统原理2013-2014学年度第2学期课程类别:专业必修实验时间:2014年5月27日实验名称:触发器实验目的和要求:1.理解触发器的触发过程和类型。2.掌握创建触发器的方法。3.掌握查看触发器的方法。4.掌握修改触发器的方法。5.掌握删除触发器的方法。实验软硬件要求:安装Window2000或windowsxp或WindowsNT操作系统和SQLServer2000或SQLServer2005的计算机实验内容、实验过程、所遇问题及其解决方法(附页)实验总结及心得体会:通过本次实验,我理解了触发器的触发过程和类型,掌握了创建、查看、修改、删除触发器的方法。进一步提高编写复杂查询的SQL脚本的能力,并且巩固和加深理解查询相关理论知识。评定成绩:批阅教师:年月日附页实验内容、实验过程、所遇问题及其解决方法:实验内容及过程:(1)利用Transact-SQL语言为S表建立一个名为s_insert的insert触发器,通过s_insert触发器以保证在向S表中插入记录时status字段只要以1,2,3,4,5字符打头。如果插入记录status字段值不是以1,2,3,4,5,打头的,则拒绝插入记录,并且输出提示信息“status字段不是以1,2,3,4,5字符打头的!”。实现语句:createtriggers_insertonsforinsertasif(selectcount(*)frominsertedwherestatuslike'[1,2,3,4,5]%')=0beginprint'status字段不是以1,2,3,4,5字符打头的!'rollbacktransactionend(2)利用企业管理器为P表建立一个名为p_weight的update触发器,通过p_weight触发器以保证修改p中数据时,限制weight字段的值的在1000以内,如果修改后的记录weight字段的值超过了100,则拒绝修改记录,并且输出提示信息“当前修改的weight字段不在1000以内,请重新输入字段值。”否则修改记录,并且输出提示信息“当前修改记录的weight值满足要求,成功完成修改操作。实现语句:createtriggerp_weightonpforupdateasif(selectcount(*)frominsertedwhereweight1000)0beginprint'当前修改的weight字段不在1000以内,请重新输入字段值'rollbacktransactionendelseprint'当前修改记录的weight值满足要求,成功完成修改操作'更新结果:(3)利用Transact-SQL语言为J表建立一个名为j_delete的delete触发器,通过j_delete触发器保证在删除工程项目表J中的记录时,该待删除记录在spj表中存在引用记录,并且对用的关系引用记录的供应数量QTY值不小于50,则不能删除该工程项目,输出提示信息“不满足删除条件“,否则可以删除,输出提示信息”相应的工程项目已经删除。实现语句:createtriggerj_deleteonjfordeleteasif(selectcount(*)frominserted,spjwhereinserted.jno=spj.jnoandspj.qty50)0beginprint'不满足删除条件'rollbacktransactionendelseprint'相应的工程项目已经删除'运行结果:(4)利用Transact-SQL语言修改触发器s-insert,修改后的s-insert触发器能保证在修改S表中记录时status字段值不允许修改。执行语句:altertriggers_insertonsforupdateasif(selectcount(*)frominserted,swhereinserted.status=s.status)0beginprint'status字段不是以1,2,3,4,5字符打头的!'rollbacktransactionend(5)将触发器s_insert的名称更改为s_status_update.执行语句:execsp_rename's_insert','s_status_update'(6)查看数据表P中所有的insertd触发器,并观察期执行结果。执行语句:execsp_helptriggerp,inserted;结果:(7)查看触发器j_delete的定义文本。执行语句:execsp_helptext'j_delete'结果:(8)查看触发器p_weight的所有者和创建日期。执行语句:execsp_help'p_weight'结果:(9)分别利用企业管理器和SQL语言删除触发器s_status_update.企业管理器删除:SQL删除:droptriggers_status_update所遇问题及其解决方法:我对触发器的触发过程和类型还不熟悉,还未充分掌握创建、查看、修改、删除触发器的方法。因此我要加深理解查询相关理论知识,通过翻课本、查资料、多写SQL脚本代码的方式来解决这些问题。
本文标题:实验十报告
链接地址:https://www.777doc.com/doc-4987387 .html