创建和使用存储过程_第1页
创建和使用存储过程_第2页
创建和使用存储过程_第3页
创建和使用存储过程_第4页
创建和使用存储过程_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验七 创建和使用存储过程目的和意义了解存储过程的概念和作用掌握存储过程的创建、执行以及查看、修改和删除 实验内容存储过程的创建与执行存储过程的查看、修改与删除实现步骤1 使用创建存储过程模板创建存储过程(1)打开SQL Server Management Studio,展开节点“对象资源管理器”|“数据定义”|“可编程性”|“存储过程”,在窗口的右侧显示出当前数据库的所有存储过程。单击鼠标右键,在弹出的快捷菜单中选择“新建存储过程”命令,如图7-1所示。图7-1 (2)在打开的SQL命令窗口中,系统给出了创建存储过程命令的模板,如图7-2所示。图7-2在模板中可以输入创建存储过程的T-SQL

2、语句,按照下面的代码建立存储过程的命令模板后,单击“执行”按钮,即可创建存储过程,如图7-3所示。图7-3(3)在新建的getstudent存储过程可以通过以下代码来执行,执行结果如图7-4所示。图7-42. 使用SQL命令窗口创建存储过程 (1)打开SQL Server Management Studio,选择“对象资源管理器”中的“学生数据库”,然后用鼠标单击“新建查询”按钮,打开SQL命令窗口,在可编辑区输入如下代码,单击“执行”按钮即可创建存储过程,如图7-5所示。图7-5 (2)新建立的getstudent_all存储过程可以通过以下代码执行,执行结果同使用创建存储过程模板创建的存储

3、过程。创建一个不带参数的存储过程,从Course中选择所有“Grade>90”的记录,输入如下语句,单击“执行”,结果如图7-6所示。图7-6创建一个带参数的存储过程,从Course中选择Grade介于65-95之间的记录,输入如下语句,单击“执行”,结果如图7-7所示。图7-7创建与执行带输入、输出参数的存储过程,实现显示“Course”中给定学号的信息,并输出“Course”中该学号的学生所选课程中的最高分数和最低分数,具体步骤如下:1)单击Microsoft SQL Server Management Studio,选择“对象资源管理器”中的“数据定义”。 2)单击常用工具栏中的“

4、新建查询”按钮,新建一个数据库引擎查询文档。 3)在数据库引擎文档中输入如下代码,单击“执行”按钮,即可创建名称为getstudent_3的存储过程,如图7-8所示。图7-8 (3)存储过程创建成功后,输入如下T-SQL语句,单击“执行”按钮,执行已经创建的存储过程getstudent_3,执行结果如图7-9所示。图7-93. 查看存储过程(1)使用Mircrosoft SQL Server 2005 Management Studio查看用户创建存储过程。 在使用SQL Server Management Studio中,展开指定的服务器和数据库,选择展开“可编程性”“存储过程”节点,然后在

5、要查看的存储过程名称上单击鼠标右键。从弹出的快捷菜单中选择“编写存储过程脚本为”“CREATE到”“新查询编辑器”窗口命令,即可看到存储过程的源代码。(2)使用系统存储过程来查看用户创建的存储过程 可供使用的系统存储过程及语法格式如下:·sp_help,用于显示存储过程的参数机器数据类型,其语法为: sp_helpobjname=name,参数name为要查看的存储过程的名称。·sp_helptext,用于显示存储过程的代码,其语法为: sp_helptextobjname=name,参数name为要查看的存储过程的名称。·sp_depends,用于显示和存储过程

6、相关的数据库对象,其语法为: sp_dependsobjname=object,参数object为要查看依赖关系的存储过程的名称。·sp_stored_procedurse,用于返回当前数据库中的存储过程列表,其语法为: sp_stored_procedursesp_name=name ,sp_owner=owner, ,sp_qualifier=qualifier其中sp_name=name用于制定返回目录信息的过程名;sp_owner=owner用于指定存储过程的所有者的名称;sp_qualifier=qualifier用于指定过程限定符的名称。4. 修改存储过程 存储过程可以根

7、据用户的要求或基表定义的改变而改变。可以使用ALTER PROCEDURE语句修改已经存在的存储过程。修改存储过程与删除和重建存储过程不同,其特点是保持存储过程的权限不发生变化,其主要语法格式如下: ALTER PROCEDURE procedure_name;number parameter data_type VARYING=defualtOUTPUT,nWITHPECOMPILEENCRYPTIONRECOMPILE,ENCRYPTIONFOR REPLICATIONASSql_statementn当使用ALTER PROCEDURE语句时,如果在ALTER PROCEDURE语句中使用

8、或参数,那么在ALTER PROCEDURE语句中也应该使用这些参数。每次只能修改一个存储过程。存储过程的创建者、db_owner和db_ddladmin的成员拥有执行ALTER PROCEDURE语句的许可,其他用户不能呢个使用。需要注意的是,用ALTER PROCEDURE更改权限和启动属性保持不变。另外使用SQL Server Management Studio也可以很方便地修改存储过程的定义,早SQL Server Management Studio中,展开指定的服务器和数据库,选择并展开“可编程性”“存储过程”节点,选择要修改的存储过程,单击鼠标右键,在弹出的快捷菜单中选择“修改”命

9、令,打开修改存储过程的窗口,在该窗口中可以直接修改定义该存储过程的T-SQL语句,然后单击“执行”按钮,执行该存储过程的修改。5. 重命名和删除存储过程(1)重命名存储过程修改存储过程的名称可以使用系统存储过程sp_rename,其语法格式如下: sp_renameobjname=object_name,object_type另外,通过SQL Server Management Studio也可以修改存储过程的名称,在SQL Server Management Studio中,在要操作的存储过程名称上单击鼠标右键,从弹出的快捷菜单中选择“重命名”命令,当存储过程名称变成可输入状态时,直接修改该

10、存储过程的名称即可。(2)删除存储过程 删除存储过程可以使用T-SQL语句中的DROP命令,DROP命令可以将一个或多个存储过程从当前数据库中删除,其语法过程如下: DROP PROCEDURE procedure_namen另外,通过SQL Server Management Studio也可以很方便地删除存储过程。在SQL Server Management Studio中,在要删除的存储过程上单击鼠标右键,从弹出的快捷菜单中选择“删除”命令,打开“删除对象”对话框,选中该存储过程,然后删除即可。例子:使用SQL命令窗口创建存储过程:为sc表创建查询学号,课程号,成绩的存储过程,不带参数:

11、为course表创建查询课程号,课程名的存储过程,其中课程号作为参数:执行存储过程(1)使用对象资源管理器:在建立的存储过程名上点击右键选择执行,执行后会自动生成代码,代码和结果如下:(2)使用T-SQL语句执行存储过程:带参数和不带参数的修改存储过程(1)使用对象资源管理器:在建立的存储过程名上点击右键选择修改,修改代码。(2)使用T-SQL语句:将pro_sc存储过程增加sno升序排列删除存储过程(1)使用对象资源管理器:在建立的存储过程名上点击右键选择删除,在出现的窗口点击确定完成删除操作。(2)使用T-SQL语句习题在数据库Company_Data中创建存储过程Procedure_Sa

12、laryByDept,要求返回某一特定部门所有员工的工资总和,其中特定部门的名称以存储过程的输入参数进行传递。(1)打开查询编辑器。(2)在查询窗口书写 CREATE PROCEDURE Transact-SQL语句创建存储过程Procedure_SalaryByDept,并带有一个输入参数Department用于传递部门名称,一个输出参数TotalSalary用于传递输出结果。CREATE PROCEDURE Procedure_SalaryByDept Department varchar(40),TotalSalary money OUTPUTAS(3)选择所属部门为该参数传递的部门名称的所有记录,并对其工资字段求和。 SELECT Tota1Sa1ary=sum(工资)FROM员工数据表WHE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论