欢迎来到天天文库
浏览记录
ID:52634842
大小:328.00 KB
页数:49页
时间:2020-04-12
《存储过程与触发器节.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、8.6节存储过程与触发器8.6.1存储过程的基本概念8.6.2创建存储过程8.6.3执行存储过程8.6.4管理存储过程8.6.5触发器的基本概念8.6.6创建触发器8.6.7管理触发器8.6.1存储过程的基本概念在使用Transact-SQL语言编程的过程中,可以将某些多次调用以实现某个特定任务的代码段编写成一个过程,将其保存在数据库中,并由SQLServer服务器通过过程名调用它们,这些过程就叫做存储过程。存储过程分为系统存储过程和用户自定义的存储过程。系统存储过程由SQLServer2000提供,用户可以直接使用。用户自定义存储过程需要用户自己创建和维护。系统存储过程使用“sp_
2、”作为前缀。存储过程的优点:可以在单个存储过程中执行一系列SQL语句。可以从自己的存储过程内引用其它存储过程,这可以简化一系列复杂语句。存储过程在创建时即在服务器上进行编译,所以执行起来比单个SQL语句快。存储过程一旦执行一次后,其执行的计划就会驻留在计算机的高速缓冲存储器中。其后对同一个存储过程的调用就可以直接利用编译后在高速缓存中的二进制形式来完成操作。8.6.2创建存储过程在SQL-Server中,可以使用三种方法创建存储过程:使用向导创建存储过程。使用SQL-Server企业管理器创建存储过程。使用Transact-SQL语句中的CreateProcedure命令创建存储过程
3、。默认情况下,创建存储过程的许可权归属数据库的所有者,数据库的所有者可以授权给其他用户。8.6.2.1使用向导创建存储过程(1)在企业管理器中选中某个SQL-Server服务器中的数据库,这里选中scdb数据库。选择工具菜单中的“向导”菜单项,系统会弹出“选择向导”对话框。选中“创建存储过程向导”选项。(2)单击“确定”按钮,出现“欢迎使用创建存储过程向导”对话框。(3)单击“下一步”按钮,出现“选择数据库”对话框,该对话框用于选择创建存储过程中使用的数据库。(4)选择数据库,单击“下一步”按钮,出现“选择操作对象”对话框,在该对话框中,列出了所有可选择的表,以及可以对表进行的数据库
4、操作,即插入删除和更新。图9-4“选择操作对象”对话框(5)单击“下一步”按钮,出现确认存储过程信息对话框。8.6.2.2使用企业管理器创建存储过程(1)在企业管理器中选中某个SQL-Server服务器中的数据库,这里选中scdb数据库。右键单击数据库下的“存储过程”选项,弹出快捷菜单,(2)在快捷菜单中选择“新建存储过程”命令出现“新建存储过程”对话框。(3)在“新建存储过程”对话框的“文本”列表框中输入存储过程名称和程序语句CREATEPROCEDUREquery_procASSelect*fromsc存储过程query_proc完成的功能是从sc表中查询全部数据。(4)单击“检
5、查语法”按钮,执行语法正确性检验。(5)单击“确定”按钮,返回企业管理器窗口,可以看到所创建的存储过程。8.6.2.3使用Transact-SQL语句创建存储过程CREATEPROC[EDURE]procedure_name[{@parameterdata_type}[VARYING][=default][OUTPUT]][,...n][WITH{RECOMPILE
6、ENCRYPTION
7、RECOMPILE,ENCRYPTION}]ASsql_statementprocedure_name:新存储过程的名称。过程名必须符合标识符规则,且对于数据库及其所有者必须唯一。@paramete
8、r:过程中的参数。data_type:参数的数据类型。Default:参数的默认值。OUTPUT:表明参数是返回参数。AS:指定过程要执行的操作。sql_statement:过程中要包含的任意数目和类型的Transact-SQL语句。例:不带有参数的存储过程下面的存储过程从scdb数据库的三个表中返回学生选课情况,结果包括学号、姓名、课程名、成绩。该存储过程不使用任何参数。usezzzGOCREATEPROCEDUREproc1ASSELECTs.sno,sname,cname,scoreFROMs,c,scwheres.sno=sc.snoandsc.cno=c.cnogoexec
9、proc1例:带有参数的存储过程设计一个带有参数的存储过程,该参数用于传递查询成绩的范围,根据该参数检索出符合该分数段的学生选课信息。usezzzGOCREATEPROCEDUREproc2(@lowint,@highint)ASSELECTs.sno,sname,cname,scoreFROMs,c,scwheres.sno=sc.snoandsc.cno=c.cnoand(scorebetween@lowand@high)go8.6.3执行存储过程[[
此文档下载收益归作者所有