仓酷云

标题: MYSQL教程之办理存储历程 [打印本页]

作者: 逍遥一派    时间: 2015-1-16 22:25
标题: MYSQL教程之办理存储历程
RDBMS并非没有局限性。它们难以扩展,需要大量的资源来配置和维护,比如时间、硬件和人力。同样,它们往往遵循峰值性能模型,这就要求系统按照峰值容量来配置可用性,而不考虑典型的数据使用情况。12.3.1检察存储历程
存储历程被创立今后,它的名字存储在体系表sysobjects中;它的源代码寄存在体系表syscomments中。能够经由过程MSSQLServer供应的体系存储历程来检察关于用户创立的存储历程信息。
1经由过程EnterpriseManager办理工具一样能够检察存储历程的源代码
其操纵以下:
(1)启动EnterpriseManager,登录到要利用的服务器。
(2)选择要创立存储历程的数据库,在左窗格中单击StoredProcedure文件夹,此时在右窗格中显现该数据库的一切存储历程。
(3)在右窗格中,右击要检察源代码的存储历程,在弹出的菜单当选择Properties选项,此时即可看到存储历程的源代码。如2-4所示:
MYSQL教程之办理存储历程
登录/注册后可看大图

2利用sp_helptext存储历程检察存储历程的源代码
其语法格局以下:
sp_helptext存储历程称号
比方要检察数据库pubs是不是是存储历程reptq1的源代码,则实行sp_helptextreptq1。
注重:假如在创立存储历程时利用了WITHENCRYPTION选项,那末不管是利用EnterpriseManager仍是体系存储历程sp_helptext都没法检察到存储历程的源代码。

12.3.2从头定名存储历程
修正存储历程的名字利用体系存储历程sp_rename。其命令格局为:
sp_rename原存储历程名,新存储历程名
例12-4:将存储历程reptq1修正为newproc其语句为:
sp_renamereptq1,newproc
别的,经由过程EnterpriseManager也可修正存储历程的名字,其操纵历程与WINDOWS下修正文件名字的操纵相似。即起首选中需修正名字的存储历程,然后右击鼠标,在弹出菜单当选取rename选项,最初输出新存储历程的名字。

12.3.3删除存储历程
删除存储历程利用drop命令,drop命令可将一个或多个存储历程大概存储历程组从
以后数据库中删除。其语律例则为:
DROPPROCEDURE{procedure}}[,…n]
例12-5:如将存储历程reptq1从数据库中删除,则实行:
dropprocedurereptq1

12.3.4实行存储历程
实行已创立的存储历程利用EXECUTE命令,其语法以下:
[EXECUTE]
{[@return_statur=]
{procedure_name[;number]|@procedure_name_var}
[[@parameter=]{value|@variable[OUTPUT]|[DEFAULT][,…n]
[WITHRECOMPILE]

各参数的寄义以下:
@return_status
是可选的整型变量,用来存贮存储历程向挪用者前往的值。
@procedure_name_var
是一变量名用来代表存储历程的名字。
别的参数据和保存字的寄义与CREATEPROCEDURE中先容的一样。
例12-6:该存储历程被用来将两个字符串联接成一个字符串,并将了局前往。创立存储历程:

MYSQL教程之办理存储历程
登录/注册后可看大图

MYSQL教程之办理存储历程
登录/注册后可看大图


12.3.5修正存储历程
修正之前用CREATEPROCEDURE命令创立的存储历程,而且不改动权限的授与情形和不影响任何别的的自力的存储历程或触发器常利用ALTERPROCEDURE命令。其语律例则是:
ALTERPROC[EDURE]procedure_name[;number]
[{@parameterdata_type}[VARYING][=default][OUTPUT]][,...n]
[WITH
{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}]
[FORREPLICATION]
AS
sql_statement[...n]
个中各参数和保存字的详细寄义请参看CREATEPROCEDURE命令。
上面将举一个例子使读者对该命令有更加深入的了解。
MYSQL教程之办理存储历程
登录/注册后可看大图

MYSQL教程之办理存储历程
登录/注册后可看大图

MYSQL教程之办理存储历程
登录/注册后可看大图

将该段代码输出到SQLServerQueryAnalyzer窗口中运转后了局为:
MYSQL教程之办理存储历程
登录/注册后可看大图

注重:因为在ALERTPROCEDURE中利用了WITHENCTYPTION保存字,以是在检察修正后的存储历程源代码时看到是一些代码。
要想在MySQL与其他数据库之间进行一个面面俱到的功能设置对比,并不是一件容易的MySQL学习教程。随着新软件版本的发布或一些补丁的推出。
作者: 再现理想    时间: 2015-1-19 11:18
习惯敲命令行的朋友可能会爽一些。但是功能有限。适合机器跑不动SQLServerManagementStudio的朋友使用。
作者: 乐观    时间: 2015-1-24 15:16
我是一个ERP初学者,对于前台运用基本熟悉,但对于后台SQLServer的运用一点也不懂,特想学习下相关资料。至少懂得一些基本的运用。希望各位能给于建议,小弟再谢过!
作者: 飘灵儿    时间: 2015-2-1 18:31
分区表效率问题肯定是大家关心的问题。在我的试验中,如果按照分区字段进行的查询(过滤)效率会高于未分区表的相同语句。但是如果按照非分区字段进行查询,效率会低于未分区表的相同语句。
作者: 变相怪杰    时间: 2015-2-7 14:00
是要和操作系统进行Socket通讯的场景。否则建议慎重!
作者: 若相依    时间: 2015-2-22 08:21
记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。
作者: 分手快乐    时间: 2015-3-6 23:45
可以动态传入参数,省却了动态SQL的拼写。
作者: 小魔女    时间: 2015-3-13 22:58
SQL语言是学习所有数据库产品的基础,无论你是做数据库管理还是做数据库开发都是这样。不过具体学习的侧重点要看你将来做哪一块,如果是做数据库管理(DBA),侧重点应该放在SQLServer的系统管理上.
作者: 冷月葬花魂    时间: 2015-3-20 21:10
比如日志传送、比如集群。。。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2