资源描述:
《第八讲 存储过程、触发器、游标ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第八讲存储过程、触发器、游标寇卫利学时:2节学习目标掌握存储过程的创建及使用方法掌握触发器的创建及DELETED、INSERTED虚拟表的用法了解游标的使用方法掌握建立数据完整性约束的方法学习重点存储过程的使用及参数的设置触发器的约束数据完整性约束的建立8.1存储过程8.1.1概念:“存储过程”(StoredProcedure)就是将常用的或很复杂的工作,预先以SQL程序写好,然后指定一个程序名称保存起来,那么以后只要使用EXECUTE指令来执行这个程序,即可自动完成该项工作。8.1.2存储过程的优点存储过程中可以包含数据存取
2、语句、流程控制语句、错误处理语句等,在使用上非常有弹性。优点执行效率高统一的操作流程重复使用安全性高8.1.3存储过程的种类系统存储过程(Systemstoredprocedure)系统存储过程一律以sp_开头,例如“sp_dboption”。此类存储过程为SQLServer内置的存储过程,通常是用来进行系统的各项设置、读取信息或执行相关管理工作。扩展存储过程(Extendedstoredprocedures)扩展存储过程通常是以xp_开头,例如“xp_sendmail”。此类存储过程大多是以传统的程序语言(例如C++)撰写而
3、成,其内容并不是保存在SQLServer中,而是以DLL的形式单独存在。用户定义的存储过程(User-definedstoredprocedures)就是我们自己设计的存储过程,其名称可以任意取,但最好不要以sp_或xp_开头,以免造成混淆。自定义的存储过程会被加入所属数据的存储过程项目中,并以对象的形式保存。8.1.4创建存储过程CREATEPROCEDURE创建存储过程,存储过程是保存起来的可以接受和返回用户提供的参数的Transact-SQL语句的集合。可以创建一个过程供永久使用,或在一个会话中临时使用(局部临时过程),
4、或在所有会话中临时使用(全局临时过程)。也可以创建在MicrosoftSQLServer启动时自动运行的存储过程。语法CREATEPROC[EDURE]procedure_name[;number] [{@parameterdata_type} [VARYING][=default][OUTPUT] ][,...n][WITH {RECOMPILE
5、ENCRYPTION
6、RECOMPILE,ENCRYPTION}][FORREPLICATION]ASsql_statement[..
7、.n]EXCreateProcedureCreateProcedureProcGetUp90asSelect*FromStudScoreInfoWhereStudScore>=90goExecProcGetUp90Execsp_helptextProcGetUp908.1.5执行存储过程语法[[EXEC[UTE]] { [@return_status=] {procedure_name[;number]
8、@procedure_name_var } [[@param
9、eter=]{value
10、@variable[OUTPUT]
11、[DEFAULT]] [,...n][WITHRECOMPILE]执行字符串:EXEC[UTE]({@string_variable
12、[N]'tsql_string'}[+...n])参数含义与CREATEPROCEDURE相同EXCreateProcedureCreateProcedureProcGetStudScoreStep@Startnumeric(4,1),@Endnumeric(4,1)WithEncryptionasSelect*Fr
13、omStudScoreInfoWhereStudScore>=@StartAndStudScore<=@EndGoExecProcGetStudScoreStep80,90Execsp_helptextProcGetStudScoreStepEXOutput参数CreateProcedureProcOutPutGetStudScoreCount@Startnumeric(4,1),@Endnumeric(4,1),@RecordCountintoutputasSelect@RecordCount=Count(*)FromStu
14、dScoreInfoWhereStudScore>=@StartAndStudScore<=@endGOCreateProcedureGetRecordCount@RecordCountintasSelect'记录条数:'+Cast(@RecordCountasvarchar