如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
存储过程及触发器1.语句创建存储过程创建存储过程的基本语法如下:CREATEPROCEDURE<Proc_Name>ASSql语句执行存储过程EXECUTEProc_Name参数1,参数2...(1)INSERT存储过程CREATEPROCSP_InsertDept@DeptIdCHAR(2),@DeptNameCHAR(20)ASINSERTINTOTb_Dept(DeptId,DeptName)VALUES(@DeptId,@DeptName)--------------------------------------------------------------------------------EXECSP_InsertDept'16','建筑设计系‘(2)UPDATE存储过程更新Tb_Class表中的数据(TeacherId和ClassStuNumber字段),创建一个存储过程实现这个功能。CREATEPROCSP_UpdateClass@TeacherIdCHAR(6),@ClassStuNumberINT,@ClassIdCHAR(8)ASUPDATETb_ClassSETTeacherId=@TeacherId,ClassStuNumber=@ClassStuNumberWHEREClassId=@ClassId--------------------------------------------------------------------------------EXECSP_UpdateClass'T08003',43,'S0408012'(3)DELETE存储过程将数据从Tb_Grade表删除(按班级删除成绩记录),创建一个存储过程实现这个功能。CREATEPROCSP_DeleteClassGrade@ClassIdCHAR(8)ASDELETEFROMTb_GradeWHEREClassId=@ClassId--------------------------------------------------------------------------------EXECSP_DeleteClassGrade'S0408011'2带输出参数存储过程在存储过程定义中为参数指定了OUTPUT关键字,则存储过程在结束后可将该参数的当前值返回给调用程序1、需要在参数定义后面再加上OUTPUT关键字来指出该参数用于向外传值。2、作为输出参数,必须在存储过程内部对其赋值。3、调用带输出参数的存储过程时,传给输出参数的必须是一个变量,并且同时指定OUTPUT。如果调用时不指定OUTPUT,则无法返回参数值。例如编写一个存储过程,使之能够获取不同班级和课程的平均成绩、最高成绩。CREATEPROCProc_GradeQuery@ClassIdCHAR(8),@CourseIdCHAR(6),@AvgScoreREALOUTPUT,@MaxScoreREALOUTPUTASBEGINSET@AvgScore=(SELECTAVG(TotalScore)FROMTb_GradeWHERECourseId=@CourseIdANDClassId=@ClassId)SET@MaxScore=(SELECTMAX(TotalScore)FROMTb_GradeWHERECourseId=@CourseIdANDClassId=@ClassId)ENDGO执行上述存储过程:-------------------------------------------------------------------------------DECLARE@AvgScoreREAL,@MaxScoreREALEXECSP_ClassGrade'S0408011','C08002',@AvgScoreOUTPUT,@MaxScoreOUTPUTPRINT@AvgScore,@MaxScore-------------------------------------------------------------------------------DECLARE@AvgScoreREAL,@MaxScoreREALEXECSP_ClassGrade@ClassId='S0408011',@CourseId='C08002',@AvgScoreOUTPUT,@MaxScoreOUTPUTPRINT@AvgScore,@MaxScoreSSMS创建存储过程1.修改、删除存储过程使用Transac