版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.淮海工学院计算机工程学院实验报告书课程名:《数据库原理及应用》题目:存储过程和触发器班级:软件132学号:2013122907姓名:孙莹莹评语:成绩: 指导教师:批阅时间: 年 月 日.一.目的与要求掌握存储过程的创建方法;掌握存储过程的执行、修改和删除等操作;掌握触发器的创建方法;掌握触发器的使用、修改和删除等相关内容二.实验内容基于前面建立的factory数据库,使用T-SQL语句完成如下各小题的功能:谢谢阅读创建一个为worker表添加职工记录的存储过程Addworker;感谢阅读创建一个存储过程Delworker删除worker表中指定职工号的记录。谢谢阅读显示存储过程Delworker;删除存储过程Addworker和Delworker.精品文档放心下载三.实验步骤1.(1)建立存储过程USEfactoryGOCREATEPROCEDUREAddworker精品文档放心下载@noint=NULL,@namechar(10)=NULL,@sexchar(2)=NULL,@birthdaydatetime=NULL,.@nachar(2)=NULL,@wtimedatetime=NULL,@depnoint=NULLASIF@noISNULLOR@nameISNULLOR@sexISNULLOR感谢阅读@birthdayISNULLOR@depnoISNULL感谢阅读BEGINPRINT'请重新输入该职工信息!'PRINT'你必须提供职工号、姓名、性别、出生日期、部门号'感谢阅读RETURNENDBEGINTRANSACTIONINSERTINTOworkerVALUES(@no,@name,@sex,@birthday,@na,@wtime,@depno)感谢阅读IF@@error<>0BEGINROLLBACKTRANRETURNENDCOMMITTRANSACTIONPRINT'职工'+@name+'的信息成功添加到表worker中'感谢阅读(2)验证存储过程USEfactory.GOAddworker20,'陈立','女','55/03/08','否','75/10/10',4感谢阅读GOSELECT职工号,姓名,性别,党员否FROMworker谢谢阅读GO2.(1)建立存储程序USEfactoryGOCREATEPROCEDUREDelworker感谢阅读@noint=NULLASIF@noISNULLBEGINPRINT'必须输入职工号!'RETURNENDBEGINTRANSACTIONDELETEFROMworkerWHERE职工号=@no感谢阅读IF@@error<>0BEGINROLLBACKTRANRETURN.ENDCOMMITTRANSACTIONPRINT'成功删除职工号为'+CAST(@noASCHAR(2))+'的职工记录'感谢阅读执行下列语句,可验证存储过程的正确性:USEfactoryGODelworker20GOSELECT职工号,姓名,性别,党员否FROMworker谢谢阅读GO3.USEfactoryGOEXECsp_helptextDelworker谢谢阅读GO4.USEfactoryGOIFEXISTS(SELECTnameFROMsysobjects感谢阅读WHEREname='Addworker'ANDtype='P')感谢阅读DROPPROCEDUREAddworkerGOIFEXISTS(SELECTnameFROMsysobjects感谢阅读.WHEREname='Delworker'ANDtype='P')精品文档放心下载DROPPROCEDUREDelworkerGO5.建立触发器depart_update的程序如下:精品文档放心下载USEfactoryGOIFEXISTS(SELECTnameFROMsysobjects精品文档放心下载WHEREtype='TR'ANDname='depart_update')感谢阅读DROPTRIGGERdepart_update谢谢阅读GOCREATETRIGGERdepart_updateONdepart谢谢阅读AFTERUPDATEASDECLARE@olddepnoint,@newdepnoint精品文档放心下载SELECT@olddepno=部门号FROMdeleted精品文档放心下载SELECT@newdepno=部门号FROMinserted感谢阅读UPDATEworkerSET部门号=@newdepnoWHERE部门号=@olddepnoGO执行下列语句,可验证存储过程的正确性:USEfactoryGO.PRINT'将部门号改为'UPDATEdepartSET部门号=105WHERE部门号=101GOSELECT职工号,姓名,部门号FROMworker精品文档放心下载GOPRINT'将部门号改为'UPDATEdepartSET部门号=101WHERE部门号=105GOSELECT职工号,姓名,部门号FROMworker精品文档放心下载GO6.建立触发器worker_delete的程序如下:精品文档放心下载USEfactoryGOIFEXISTS(SELECTnameFROMsysobjects谢谢阅读WHEREtype='TR'ANDname='worker_delete')感谢阅读DROPTRIGGERworker_delete精品文档放心下载GOCREATETRIGGERworker_deleteONworker感谢阅读FORDELETE.ASDECLARE@nointSELECT@no=职工号FROMdeleted谢谢阅读DELETEFROMsalaryWHERE职工号=@noGO执行下列语句,可验证存储过程的正确性:USEfactoryGOPRINT'删除前的工资记录'SELECT*FROMsalaryGODELETEFROMworkerWHERE职工号=15GOPRINT'删除职工号为的职工记录后的工资记录'SELECT*FROMsalaryGO7.删除触发器depart_update的程序如下:感谢阅读USEfactoryGODROPTRIGGERdepart_update谢谢阅读.GO8.删除触发器worker_delete的程序如下:精品文档放心下载USEfactoryGODROPTRIGGERworker_delete感谢阅读GO四.测试数据与实验结果第1题图第2题图第3题图.第5题图.第6题图五.结果分析与实验体会CREATEPROCEDURE语句允许创建、编译并在MS-SQLServer上保存存储过程。在默认情谢谢阅读况下,只有数据库拥有者(DBO)具有对数据库的CREATEPROCEDURE访问权。但是,DBO可精品文档放心下载执行以下形式的GRANT语句向由语句中的<username>所标识的用户 ID授予CREATE谢谢阅读PROCEDURE访问权:GRANTCREATEPROCEDURE<username>感谢阅读CREATEPROCEDURE语句的句法如下:CREATEPROCEDURE<procedurename>[;<versionnumber>]精品文档放心下载[{@<parametername><datatype>[VARYING]谢谢阅读[=<defaultvalue>][OUTPUT]精品文档放心下载.[…,n]}][WITH{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}]感谢阅读[FORREPLICATION]AS<Transact-SQLstatement(s)>精品文档放心下载其中:<procedurename>是存储过程的名称,名称至多可有128个字符。精品文档放心下载<versionnumber>允许创建多个有相同名称的存储过程。通过在执行命令中包括版本号从而精品文档放心下载执行指定版本的存储过程,如下面的语句所示:EXECusp_proc;2。如果调用存储过程时没有指定谢谢阅读版本号,DBMS将执行具有相同名称的存储过程组中最高版本号的存储过程。通过在DROP语句谢谢阅读中包括版本号,如DROPPROCEDUREusp_proc;2所示,可以删除特定版本号的存储过程,或者谢谢阅读忽略版本号,如DROPPROCEDUREusp_proc从而一次删除存储过程的所有版本。感谢阅读<parametername>是可用作存储过程中的变量的参数名。每个参数的值必须在存储过程调用感谢阅读中提供或者作为CREATEPROCEDURE语句的一部分设置为缺省值。虽然参数可用作存储过程中的谢谢阅读变量名,但参数不能用作列名、表名或是其他数据库对象的名称。精品文档放心下载<datatype>是参数的数据类型。参数可以是任何合法的SQL数据类型(包括TEXT、NTEXT谢谢阅读和IMAGE)或用户定义的数据类型。如果参数是 CURSOR数据类型,该参数还必须被指定为精品文档放心下载VARYING和OUTPUT。VARYING仅对数据类型为CURSOR的参数才是合法的。指明该参数将包括内容会变化的结果谢谢阅读集,其内容由存储过程中的语句动态地构成。<defaultvalue>是参数的默认值。如果指定,则过程可在不指定参数的情况下执行。感谢阅读OUTPUT指明参数在存储过程中可以变化,而且修改后的值可返回给主调过程。精品文档放心下载…,n指明CREATEPROCEDURE语句可有多达2100个参数。精品文档放心下载RECOMPILE每当存储过程被调用时告诉MS-SQLServer都要进行编译(也就是生成新的执感谢阅读.行计划)。如果没有此选项项,DBMS在执行CREATEPROCEDURE语句时编码存储过程,每次调感谢阅读用时都使用同一执行计划。ENCRYPTION告诉MS-SQLServer加密SYSCOMMENTS表中存储过程条目的文本,以防精品文档放心下载止用户查看编译后的存储过程中的语句。指定此选项还可防止存储过程被除数作为MS-SQLServer感谢阅读的复制过程而分开。由于创建的触发器在条件成立时会自动被调用,可能影响后面示例的执行,所以当一个触发器谢谢阅读不再需要时,需将其禁用,禁用trigop触发器的操作是:选中factory表节点,展开下方的触发器感谢阅读节点,右击trigop,在出现的快捷菜单中选择禁用命令。如要重新启动
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026叉车电气系统试题及答案呈现
- 2026官方版贵州省专业技术人员继续教育公需科目考试试卷及答案
- 2026内蒙古能源集团秋招面笔试题及答案
- 七年级科学教案-形形色色的植物
- 2026年cpa注册会计师税法模拟题及答案
- 初中体育与健康七年级《运动助力 心理发展》教学设计
- 2026年保护患者权益试题及答案
- 2026年沈阳国有控股集团有限公司人员招聘笔试参考试题及详细答案解析
- 2026年北京市基础设施投资有限公司人员招聘考试备考题库及详细答案解析
- 2026年苏州文化旅游发展集团有限公司人员招聘笔试模拟试题及详细答案解析
- 小学生保护眼睛健康讲座课件
- 致盲性眼病科普
- 驾驶人员技能培训课件
- 2025年中职(动漫与游戏制作)二维动画制作试题及答案
- 亮剑的团队精神
- 儿童电除颤教学课件
- 东北林业大学《生物科学专业英语》2023-2024学年第二学期期末试卷
- 建筑物拆除工程合同模板
- DB32T 3262-2017 移动泵机组运行与维护规范
- 会计基础第四版 课件 项目四 运用借贷记账法
- 2024年全国职业院校技能大赛高职组(社区服务实务赛项)考试题库(含答案)
评论
0/150
提交评论