资源描述:
《实验五:t-sql与存储过程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验五:T-SQL与存储过程一、实验目的1、了解创建存储过程的T-SQL语句的基本语法2、掌握使用界面操作方式和命令方式创建存储过程的方法和步骤3、掌握存储过程的使用方法二、实验平台和实验工具Window7、SQLServer2008三、实验相关知识1、SQLSERVER支持五种类型的存储过程:系统存储过程、本地存储过程、临时存储过程、远程存储过程和扩展存储过程。其中,系统存储过程是由系统提供的存储过程,可以作为命令执行各种操作。系统存储过程定义在系统数据库master中,其前缀是sp_。本地存储过程是指在用户
2、数据库中创建的存储过程,这种存储过程完成特定数据库操作任务,不能以sp_为前缀。2、只能在当前数据库中创建存储过程。3、创建存储过程时,应指定所有输入参数和向调用过程或批处理返回的输出参数、执行数据库操作的编程语句和返回至调用过程或批处理以表明成功或失败的状态值。4、创建存储过程的T-SQL语句lCREATEPROC[EDURE]存储过程名称[{@参数名称数据类型}][,…n][WITH{RECOMPILE
3、ENCRYPTION}]ASSQL语句序列说明:(1)RECOMPILE表明每次运行该过程时,将其重新编
4、译。(2)ENCRYPTION表示SQLSERVER加密SYSCOMMENTS表中包含CREATEPROCEDURE语句文本的条目。注:必须将CREATEPROCEDURE语句放在单个批处理中。成功执行CREATEPROCEDURE语句后,存储过程存储在sysobjects系统表中。5、执行存储过程lEXEC[UTE]@返回值=存储过程名称参数值6、查看存储过程l查看存储过程的文本信息:SP_HELPTEXT存储过程名l查看存储过程的一般信息:SP_HELP存储过程名l查看存储过程的相关信息:SP_DEPEND
5、S存储过程名7、编辑修改存储过程lALTERPROCEDURE存储过程名称[{@参数名称数据类型}][,…n][WITH{RECOMPILE
6、ENCRYPTION}]ASSQL语句序列说明:各参数含义与CREATEPROCEDURE命令相同。8、删除存储过程lDROPPROCEDURE存储过程名称[,…N]四、实验内容及步骤1、使用学生课程数据库S-T中的“student”表、“course”表和“sc”表,创建一个存储过程xsxx_proc。查询学生的姓名、课程名称和成绩。代码:USES-TGOIFEXIST
7、S(SELECTNAMEFROMSYSOBJECTSWHERENAME='xsxx_proc'ANDTYPE='p')DROPPROCEDUREXSXX_PROCGOCREATEPROCEDURExsxx_procASSELECTsname,cname,gradeFROMstudent,sc,courseWHEREstudent.sno=sc.snoANDsno.cno=course.cnoGO2、创建带参数的存储过程xbrs_proc。返回各系的男、女生人数。代码:USES-TGOCREATEPROCEDUR
8、Exbrs_proc@xbmcchar(8)/*局部变量必须先定义后使用*/ASSELECTsdept,ssex,COUNT(*)AS人数FROMstudentWHEREsdept=@xbmcGROUPBYsdept,ssexGO3、使用“student”表,创建一个加密的存储过程jmxs_proc。返回信息系的所有学生的信息。代码:USES-TGOCREATEPROCEDUREjmxs_procWITHENCRYPTIONASSELECT*FROMstudentWHEREsdept=‘is’GO4、执行已存在
9、的存储过程xsxx_proc。步骤:USES-TGOexecxsxx_procGO5、执行已存在的带参数的存储过程xbrs_proc,返回“cs”的学生人数以及男、女生人数。步骤:USES-TGOExecxbrs_proc‘cs’GO6、分别查看XSXX_PROC存储过程的一般信息、文本信息和依赖关系。步骤:USES-TGOEXECSP_HELPxsxx_procEXECSP_HELPTEXTxsxx_procEXECSP_DEPENDSxsxx_procGO7、查看JMXS_PROC存储过程的一般信息。步骤:
10、USES-TGOSP_HELPjmxs_procGO8、修改XSXX_PROC存储过程,返回计算机系学生的姓名、课程名称和成绩。步骤:USES-TGOALTERPROCEDURExsxx_procASSELECTsname,cname,gradeFROMstudent,sc,courseWHEREstudent.sno=sc.snoANDsc.cno=course.cnoANDsdep