SQL Server 数据库技术第8章存储过程和触发器的创建与维护...ppt
《SQL Server 数据库技术第8章存储过程和触发器的创建与维护...ppt》由会员分享,可在线阅读,更多相关《SQL Server 数据库技术第8章存储过程和触发器的创建与维护...ppt(120页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第8章章 存储过程和触发器存储过程和触发器 的创建与维护的创建与维护2本章学习目标本章学习目标uu了解存储过程的概念;了解存储过程的概念;了解存储过程的概念;了解存储过程的概念;uu掌握创建、执行存储过程的方法;掌握创建、执行存储过程的方法;掌握创建、执行存储过程的方法;掌握创建、执行存储过程的方法;uu掌握查看和修改存储过程的方法;掌握查看和修改存储过程的方法;掌握查看和修改存储过程的方法;掌握查看和修改存储过程的方法;uu掌握删除存储过程的方法;掌握删除存储过程的方法;掌握删除存储过程的方法;掌握删除存储过程的方法;uu了解触发器和一般存储过程的主要区别;了解触发器和一般存储过程的主要区
2、别;了解触发器和一般存储过程的主要区别;了解触发器和一般存储过程的主要区别;uu掌握创建和查看触发器的方法;掌握创建和查看触发器的方法;掌握创建和查看触发器的方法;掌握创建和查看触发器的方法;uu掌握修改和删除触发器的方法。掌握修改和删除触发器的方法。掌握修改和删除触发器的方法。掌握修改和删除触发器的方法。38.1 概述概述8.1.1 存储过程概述存储过程概述uu“存储过程存储过程存储过程存储过程”就是将常用的或很复杂的工作就是将常用的或很复杂的工作就是将常用的或很复杂的工作就是将常用的或很复杂的工作,预先以预先以预先以预先以SQLSQL程序写好程序写好程序写好程序写好,然后指定一个程序名然后
3、指定一个程序名然后指定一个程序名然后指定一个程序名称保存起来称保存起来称保存起来称保存起来,以后只要用以后只要用以后只要用以后只要用EXCUTEEXCUTE指令来执指令来执指令来执指令来执行这个程序行这个程序行这个程序行这个程序,即可完成该项工作即可完成该项工作即可完成该项工作即可完成该项工作.48.1.1 存储过程概述存储过程概述应该提倡多使用存储过程,原因有以下几点。应该提倡多使用存储过程,原因有以下几点。应该提倡多使用存储过程,原因有以下几点。应该提倡多使用存储过程,原因有以下几点。(1 1)实现了模块化编程。)实现了模块化编程。)实现了模块化编程。)实现了模块化编程。(2 2)调用一次
4、以后,相关信息就保存在内存中,)调用一次以后,相关信息就保存在内存中,)调用一次以后,相关信息就保存在内存中,)调用一次以后,相关信息就保存在内存中,下次调用时可以直接执行。下次调用时可以直接执行。下次调用时可以直接执行。下次调用时可以直接执行。(3 3)存储过程可以接受输入参数并可以返回输出)存储过程可以接受输入参数并可以返回输出)存储过程可以接受输入参数并可以返回输出)存储过程可以接受输入参数并可以返回输出值。值。值。值。(4 4)存储过程具有对数据库立即访问的功能。)存储过程具有对数据库立即访问的功能。)存储过程具有对数据库立即访问的功能。)存储过程具有对数据库立即访问的功能。(5 5)
5、使用存储过程可以加快程序的运行速度。)使用存储过程可以加快程序的运行速度。)使用存储过程可以加快程序的运行速度。)使用存储过程可以加快程序的运行速度。(6 6)使用存储过程可以减少网络流量。)使用存储过程可以减少网络流量。)使用存储过程可以减少网络流量。)使用存储过程可以减少网络流量。(7 7)使用存储过程可以提高数据库的安全性。)使用存储过程可以提高数据库的安全性。)使用存储过程可以提高数据库的安全性。)使用存储过程可以提高数据库的安全性。58.1.1 存储过程概述存储过程概述 存储过程分为两类:存储过程分为两类:存储过程分为两类:存储过程分为两类:系统存储过程和用系统存储过程和用系统存储过
6、程和用系统存储过程和用户自定义的存储过程户自定义的存储过程户自定义的存储过程户自定义的存储过程。uu系统存储过程系统存储过程系统存储过程系统存储过程n是由系统自动创建的,主要存储在是由系统自动创建的,主要存储在master数据数据库中,一般以库中,一般以sp_为前缀。为前缀。n系统存储过程完成的功能系统存储过程完成的功能主要是从系统表中获主要是从系统表中获取信息。取信息。进行系统的各项设置、相关管理工作。进行系统的各项设置、相关管理工作。uu用户自定义存储过程用户自定义存储过程用户自定义存储过程用户自定义存储过程n由用户创建并能完成某一特定功能的存储过程。由用户创建并能完成某一特定功能的存储过
7、程。n会会被加入所属数据库的存储过程项目中,并以被加入所属数据库的存储过程项目中,并以对象的形式保存。对象的形式保存。68.2 存储过程存储过程8.2.1 创建存储过程创建存储过程创建存储过程创建存储过程创建存储过程创建存储过程的的的的三种方法三种方法三种方法三种方法:uu使用使用使用使用创建存储过程向导创建存储过程向导创建存储过程向导创建存储过程向导创建存储过程。创建存储过程。创建存储过程。创建存储过程。uu使用使用使用使用企业管理器企业管理器企业管理器企业管理器创建存储过程。创建存储过程。创建存储过程。创建存储过程。uu使用使用使用使用Transact-SQLTransact-SQL语句中
8、的语句中的语句中的语句中的CREATE CREATE PROCEDUREPROCEDURE命令创建存储过程。命令创建存储过程。命令创建存储过程。命令创建存储过程。71使用创建存储过程向导创建存储过程使用创建存储过程向导创建存储过程(1 1)在企业管理器中,)在企业管理器中,)在企业管理器中,)在企业管理器中,要创建存储过程的要创建存储过程的要创建存储过程的要创建存储过程的数数数数据库据库据库据库,选择,选择,选择,选择“工具工具工具工具”菜单菜单菜单菜单中的中的中的中的“向导向导向导向导”菜菜菜菜单单单单项项项项,单击向导中,单击向导中,单击向导中,单击向导中“数据库数据库数据库数据库”选项选
9、项选项选项左边的左边的左边的左边的加号加号加号加号,选中,选中,选中,选中“创建存创建存创建存创建存储过程向导储过程向导储过程向导储过程向导”选项。选项。选项。选项。8 (2 2)单击单击单击单击“确确确确定定定定”按钮。按钮。按钮。按钮。出现出现出现出现“欢欢欢欢迎使用创迎使用创迎使用创迎使用创建存储过建存储过建存储过建存储过程程程程”对话对话对话对话框,如图框,如图框,如图框,如图所示。所示。所示。所示。9(3 3)选择数据库对话框)选择数据库对话框)选择数据库对话框)选择数据库对话框选择存放存储过程选择存放存储过程的数据库。的数据库。10(4)“选择存储过程选择存储过程”对话框。对话框。
10、选择存储过程中选择存储过程中要针对哪些表做要针对哪些表做哪些操作。哪些操作。11(5)确认存储过程信息对话框)确认存储过程信息对话框向导会针对每一向导会针对每一个数据表的每一个数据表的每一个操作,都产生个操作,都产生单独的存储过程单独的存储过程来处理。来处理。按此按钮可编辑按此按钮可编辑选定项目的设置。选定项目的设置。12(6)“编辑存储过程属性编辑存储过程属性”对话框对话框更改存储过程的更改存储过程的名称。名称。按此按钮可直接按此按钮可直接修改修改SQL程序代程序代码。码。execute insert_读者基本信息表读者基本信息表_1 67,女女,fggg,7,9132 2使用使用使用使用S
11、QL Server 2000SQL Server 2000企业管理器创建存储过程企业管理器创建存储过程企业管理器创建存储过程企业管理器创建存储过程步骤如下:步骤如下:步骤如下:步骤如下:(1 1)在企业管理器)在企业管理器)在企业管理器)在企业管理器中,选择指定的服中,选择指定的服中,选择指定的服中,选择指定的服务器和数据库,右务器和数据库,右务器和数据库,右务器和数据库,右击要创建存储过程击要创建存储过程击要创建存储过程击要创建存储过程的数据库,在弹出的数据库,在弹出的数据库,在弹出的数据库,在弹出的快捷菜单中依次的快捷菜单中依次的快捷菜单中依次的快捷菜单中依次选择选择选择选择“新建新建新建
12、新建”“”“存储过程存储过程存储过程存储过程”命令命令命令命令。14(2 2)在文本框中可以输入创建存储过程的)在文本框中可以输入创建存储过程的)在文本框中可以输入创建存储过程的)在文本框中可以输入创建存储过程的T-T-SQLSQL语句。语句。语句。语句。(3 3)输入完毕可单击)输入完毕可单击)输入完毕可单击)输入完毕可单击“检查语法检查语法检查语法检查语法”按钮。按钮。按钮。按钮。(4 4)最后单击)最后单击)最后单击)最后单击“确定确定确定确定”保存。保存。保存。保存。默认的样板。默认的样板。CREATE PROCEDURE 存存储过程储过程_读者信息读者信息AS SELECT 读者编号
13、读者编号,姓名姓名,性性别别,所在部门所在部门 from 读者基本读者基本信息表信息表153使用使用Transact-SQL语句创建存储过程语句创建存储过程uu可以使用可以使用可以使用可以使用Transact-SQLTransact-SQL语句中的语句中的语句中的语句中的CREATE PROCEDURECREATE PROCEDURE命令创建存储过命令创建存储过命令创建存储过命令创建存储过程,只能在程,只能在程,只能在程,只能在当前数据库当前数据库当前数据库当前数据库中创建存储过程。中创建存储过程。中创建存储过程。中创建存储过程。163使用使用Transact-SQL语句创建存储过程语句创建存
14、储过程语法形式如下:语法形式如下:语法形式如下:语法形式如下:uuCREATE PROCEDURE CREATE PROCEDURE procedure_name;numberprocedure_name;number parameter data_type parameter data_type VARYING=defaultOUTPUT VARYING=defaultOUTPUT ,.n ,.n WITH WITH RECOMPILE|ENCRYPTION|RECOMPILE,ERECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION NCRYPTION FOR
15、REPLICATION FOR REPLICATION AS sql_statement .n AS sql_statement .n 17uuprocedure_nameprocedure_name:用于指定所要创用于指定所要创用于指定所要创用于指定所要创建存储过程的名称。建存储过程的名称。建存储过程的名称。建存储过程的名称。各参数的含义:各参数的含义:18uuparameterparameter:过程中的参数。在过程中的参数。在过程中的参数。在过程中的参数。在CREATE PROCEDURECREATE PROCEDURE语句中可以声语句中可以声语句中可以声语句中可以声明一个或多个参数。明
16、一个或多个参数。明一个或多个参数。明一个或多个参数。执行时应提供相应执行时应提供相应执行时应提供相应执行时应提供相应的实在参数的实在参数的实在参数的实在参数.uudata_typedata_type:用于指定参数的数据类型。用于指定参数的数据类型。用于指定参数的数据类型。用于指定参数的数据类型。uudefaultdefault:用于指定参数的默认值用于指定参数的默认值用于指定参数的默认值用于指定参数的默认值(常量常量常量常量)。各参数的含义:各参数的含义:parameter data_type parameter data_type19uuASAS:用于指定该存储过程要执行的操作。用于指定该存
17、储过程要执行的操作。用于指定该存储过程要执行的操作。用于指定该存储过程要执行的操作。uusql_statementsql_statement:是存储过程中包含的任是存储过程中包含的任是存储过程中包含的任是存储过程中包含的任意数目和类型的意数目和类型的意数目和类型的意数目和类型的Transact-SQLTransact-SQL语句。语句。语句。语句。各参数的含义:各参数的含义:20CREATE PROCEDURE CREATE PROCEDURE 参数名参数名参数名参数名 AS ASSQL|21例例例例:从从从从STUDENTSTUDENT数据库的三个表中查询数据库的三个表中查询数据库的三个表中
18、查询数据库的三个表中查询,返回返回返回返回学生学号、姓名、课程名、成绩、学分。学生学号、姓名、课程名、成绩、学分。学生学号、姓名、课程名、成绩、学分。学生学号、姓名、课程名、成绩、学分。USE STUDENTUSE STUDENTIF EXISTS(SELECT name FROM IF EXISTS(SELECT name FROM sysobjectssysobjects WHERE name=WHERE name=student_infostudent_info AND AND type=P)type=P)DROP PROCEDURE DROP PROCEDURE student_inf
19、ostudent_info GO GOCREATE PROCEDURE CREATE PROCEDURE student_infostudent_infoASASSelect a.Select a.学号学号,姓名姓名,课程名课程名,成绩成绩,学分学分From student From student a,sca,sc b,courseb,course c cWHERE a.WHERE a.学号学号=b.=b.学号学号 And b.And b.课号课号=c.=c.课号课号GOGOEXECUTE EXECUTE student_infostudent_info简单的存储过程22练习:练习:从从从从
20、STUDENTSTUDENT数据库的三个表中查询数据库的三个表中查询数据库的三个表中查询数据库的三个表中查询某人指定课程的成绩和学分。该存储过程接受某人指定课程的成绩和学分。该存储过程接受某人指定课程的成绩和学分。该存储过程接受某人指定课程的成绩和学分。该存储过程接受与传递参数精确匹配的值。与传递参数精确匹配的值。与传递参数精确匹配的值。与传递参数精确匹配的值。USE STUDENTUSE STUDENTIF EXISTS(SELECT name FROM IF EXISTS(SELECT name FROM sysobjectssysobjects WHERE name=student_in
21、fo1 AND WHERE name=student_info1 AND type=P)type=P)DROP PROCEDURE student_info1 DROP PROCEDURE student_info1GOGOCREATE PROCEDURE student_info1CREATE PROCEDURE student_info1 name char(8),cname char(16)name char(8),cname char(16)ASASSelect a.Select a.学号学号,姓名姓名,课程名课程名,成绩成绩,学分学分From student From student
22、 a,sca,sc b,courseb,course c cWHERE a.WHERE a.学号学号=b.=b.学号学号 And b.And b.课号课号=c.=c.课号课号 and and a.a.姓名姓名=name=name and and c.c.课程名课程名=cnamecnameGOGO带参数的存储过程23EXECUTE student_info1 EXECUTE student_info1 王丽王丽王丽王丽,计算机基础计算机基础计算机基础计算机基础 EXECUTE student_info1 name=EXECUTE student_info1 name=王丽王丽王丽王丽,cname
23、cname=计算机基础计算机基础计算机基础计算机基础 24练习:从练习:从练习:从练习:从STUDENTSTUDENT数据库的三个表中返回指定学生数据库的三个表中返回指定学生数据库的三个表中返回指定学生数据库的三个表中返回指定学生的学号、姓名、所选课程名及该课的成绩。该存储过的学号、姓名、所选课程名及该课的成绩。该存储过的学号、姓名、所选课程名及该课的成绩。该存储过的学号、姓名、所选课程名及该课的成绩。该存储过程在参数中可使用模式匹配,如果没提供参数,则使程在参数中可使用模式匹配,如果没提供参数,则使程在参数中可使用模式匹配,如果没提供参数,则使程在参数中可使用模式匹配,如果没提供参数,则使用
24、预设的默认值用预设的默认值用预设的默认值用预设的默认值USE STUDENTUSE STUDENTIF EXISTS(SELECT name FROM IF EXISTS(SELECT name FROM sysobjectssysobjects WHERE name=student_info3 AND WHERE name=student_info3 AND type=P)type=P)DROP PROCEDURE student_info3 DROP PROCEDURE student_info3 GO GOCREATE PROCEDURE student_info3CREATE PROC
25、EDURE student_info3 name varchar(30)=name varchar(30)=刘刘%ASASSelect a.Select a.学号学号,姓名姓名,课程名课程名,成绩成绩From student From student a,sca,sc b,courseb,course c cWHERE a.WHERE a.学号学号=b.=b.学号学号 And b.And b.课号课号=c.=c.课号课号 and and 姓名姓名 like name like name GOGO带参数的存储过程25EXECUTE student_info3 /*EXECUTE student_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL Server 数据库技术第8章 存储过程和触发器的创建与维护. 数据库技术 存储 过程 触发器 创建 维护
限制150内