资源描述:
《数据库实验6触发器实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、淮海工学院计算机工程学院实验报告书课程名:《数据库原理及应用》题目:存储过程和触发器班级:软件132学号:2013122907姓名:孙莹莹评语:成绩:指导教师:批阅时间:年月日《数据库原理及应用》实验报告-8–一.目的与要求1.掌握存储过程的创建方法;2.掌握存储过程的执行、修改和删除等操作;3.掌握触发器的创建方法;4.掌握触发器的使用、修改和删除等相关内容二.实验内容基于前面建立的factory数据库,使用T-SQL语句完成如下各小题的功能:1.创建一个为worker表添加职工记录的存储过程Addworker;2
2、.创建一个存储过程Delworker删除worker表中指定职工号的记录。3.显示存储过程Delworker;4.删除存储过程Addworker和Delworker.三.实验步骤1.(1)建立存储过程USEfactoryGOCREATEPROCEDUREAddworker@noint=NULL,@namechar(10)=NULL,@sexchar(2)=NULL,@birthdaydatetime=NULL,@nachar(2)=NULL,@wtimedatetime=NULL,@depnoint=NULLASIF
3、@noISNULLOR@nameISNULLOR@sexISNULLOR@birthdayISNULLOR@depnoISNULLBEGINPRINT'请重新输入该职工信息!'PRINT'你必须提供职工号、姓名、性别、出生日期、部门号'RETURNENDBEGINTRANSACTIONINSERTINTOworker VALUES(@no,@name,@sex,@birthday,@na,@wtime,@depno)IF@@error<>0BEGINROLLBACKTRANRETURNEND《数据库原理及应用》实
4、验报告-8–COMMITTRANSACTIONPRINT'职工'+@name+'的信息成功添加到表worker中'(2)验证存储过程USEfactoryGOAddworker20,'陈立','女','55/03/08','否','75/10/10',4GOSELECT职工号,姓名,性别,党员否FROMworkerGO2.(1)建立存储程序USEfactoryGOCREATEPROCEDUREDelworker@noint=NULLASIF@noISNULLBEGINPRINT'必须输入职工号!'RETURNENDBE
5、GINTRANSACTIONDELETEFROMworkerWHERE职工号=@noIF@@error<>0BEGINROLLBACKTRANRETURNENDCOMMITTRANSACTIONPRINT'成功删除职工号为'+CAST(@noASCHAR(2))+'的职工记录'执行下列语句,可验证存储过程的正确性:USEfactoryGODelworker20GOSELECT职工号,姓名,性别,党员否FROMworkerGO3.USEfactoryGOEXECsp_helptextDelworkerGO4.USEfa
6、ctoryGOIFEXISTS(SELECTnameFROMsysobjects《数据库原理及应用》实验报告-8–WHEREname='Addworker'ANDtype='P')DROPPROCEDUREAddworkerGOIFEXISTS(SELECTnameFROMsysobjectsWHEREname='Delworker'ANDtype='P')DROPPROCEDUREDelworkerGO5.建立触发器depart_update的程序如下:USEfactoryGOIFEXISTS(SELECTname
7、FROMsysobjectsWHEREtype='TR'ANDname='depart_update')DROPTRIGGERdepart_updateGOCREATETRIGGERdepart_updateONdepartAFTERUPDATEASDECLARE@olddepnoint,@newdepnointSELECT@olddepno=部门号FROMdeletedSELECT@newdepno=部门号FROMinsertedUPDATEworkerSET部门号=@newdepnoWHERE部门号=@oldde
8、pnoGO执行下列语句,可验证存储过程的正确性:USEfactoryGOPRINT'将部门号改为'UPDATEdepartSET部门号=105WHERE部门号=101GOSELECT职工号,姓名,部门号FROMworkerGOPRINT'将部门号改为'UPDATEdepartSET部门号=101WHERE部门号=105GOSELECT职工号,姓