欢迎来到天天文库
浏览记录
ID:49482838
大小:622.50 KB
页数:44页
时间:2020-02-25
《sql存储过程讲解.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、SQLSERVER2000中文版入门与提高主讲:王玮第十八章存储过程和触发器存储过程和触发器的功能和特点创建存储过程修改存储过程删除存储过程本章主要内容存储过程概述什么是存储过程一组预先编释好的代码,可以做为一个独立的数据库对象,也可以作为一个单元被用户的应用程序调用。存储过程在创建时就被编译和优化,调用一次以后,相关信息就保存在内存中,下次无须编译可以直接调用执行。·允许模块化编程,增强代码的重用性和共享性·使用存储过程可以加快程序的运行速度.·使用存储过程可以减少网络流量。·存储过程可以提高数据
2、库的安全性。存储过程的优点1、系统存储过程2、用户存储过程3、临时存储过程4、扩展存储过程5、远程存储过程存储过程的分类系统存储过程是由系统提供的过程,可以作为命令直接执行。系统存储过程存储在master数据库中,其前缀为sp_。系统存储过程可以在任意一个数据库中执行。用户存储过程是创建在用户数据库中的存储过程。其名称前面一般不加sp_前缀。主要在应用程序中使用,以完成特定的任务。临时存储过程属于用户存储过程。如果用户存储过程前面加上符号“#”,则该存储过程称为局部临时存储过程,只能在一个用户会话中使用
3、。存储过程的分类4、扩展存储过程是在SQLServer环境之外执行的动态链接库DLL,其前缀为xp_。尽管这些动态链接库在SQLServer环境之外,但它们可以被加载到SQLServer系统中,并且按照存储过程的方式执行。5、远程存储过程是指从远程服务器上调用的存储过程,或者是从连接到另外一个服务器上的客户机上调用的存储过程。存储过程的分类创建存储过程在SQLServer中使用三种方法创建存储过程:①使用创建存储过程向导创建存储过程。②利用SQLServer企业管理器创建存储过程。③使用Transact
4、-SQL语句中的CREATEPROCEDURE命令创建存储过程。使用向导创建存储过程使用企业管理器创建存储过程创建存储过程CREATEPROC[EDURE]存储过程名[;数字][@参数数据类型[=default][OUTPUT][WithRECOMPILE--重新编译
5、ENCRYPTION--加密
6、RECOMPILE,ENCRYPTION]ASSQL语句不带参数的存储过程:CREATEPROCpr_例一ASSELECT*FROM学生花名册GOEXECpr_例一查看存储过程用于显示存储过程的参数及其数据类
7、型sp_help[[@objname=]存储过程名称]用于显示存储过程的源代码sp_helptext[[@objname=]存储过程名称]用于显示和存储过程相关的数据库对象sp_depends[@objname=]’存储过程名称’用于返回当前数据库中的存储过程列表sp_stored_procedures[@objname=]’存储过程名称’执行存储过程如果对存储过程的调用是批处理的第一条语句,则可以省略exec关键字,直接使用存储过程的名字调用这个存储过程写入存储过程名直接执行。Exec[ute]存储过
8、程名删除存储过程Dropprocedure名字[,……n]修改存储过程Alterproc[dure]存储过程名[withencryption]AsSQL语句修改pr_例一存储过程,使其按年龄排序ALTERPROCpr_例一ASSELECT*FROM学生花名册ORDERBY年龄EXECpr_例一重命名存储过程sp_rename原存储过程名称,新存储过程名称通过存储过程传递参数CreatePROC过程名(参数数据类型[=DEFAULT][OUTPUT])ASSQL语句Default:定义参数的默认值,如果定
9、义了一个默认值,则在调用存储过程时,可以不指定该参数的值。默认值必须是一个常量,或者是null。带参数的存储过程:CREATEPROCEDUREpr_例二@xhint=1ASBEGINSETNOCOUNTONSELECT*FROM学生花名册WHERE学号=@xhENDDECLARE@接收值INTEXECpr_例二6PRINT@接收值存储过程的执行[[EXEC[UTE]]{[@返回值=]存储过程名[;数字]@参数={值
10、变量[OUTPUT]
11、[DEFAULT]}[WITHRECOMPILE]CREATEP
12、ROCpr_例一ASBEGINDECLARE@返回值intSELECT@返回值=COUNT(DISTINCT学号)FROM学生花名册RETURN@返回值ENDEXECpr_例一DECLARE@接收值INTEXEC@接收值=pr_例一PRINT@接收值CREATEPROCpr_例一@返回值INTOUTPUTASBEGINSELECT@返回值=COUNT(DISTINCT学号)FROM学生花名册ENDDECLARE@接收值INTEXECpr_例
此文档下载收益归作者所有