SQLServer技术(72)

来源:互联网 发布:2016中国国际储备数据 编辑:程序博客网 时间:2024/06/13 22:52
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

12.3.1查看存储过程
存储过程被创建以后,它的名字存储在系统表sysobjects中;它的源代码存放在系统表syscomments中。可以通过MS提供的系统存储过程来查看关于用户创建的存储过程信息。
1通过EnterpriseManager管理工具同样可以查看存储过程的源代码
其操作如下:
(1)启动EnterpriseManager,登录到要使用的服务器。
(2)选择要创建存储过程的数据库,在左窗格中单击StoredProcedure文件夹,此时在右窗格中显示该数据库的所有存储过程。
(3)在右窗格中,右击要查看源代码的存储过程,在弹出的菜单中选择Properties选项,此时便可看到存储过程的源代码。如图12-4所示:


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:该存储过程被用来将两个字符串连接成一个字符串,并将结果返回。创建存储过程:



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命令。
下面将举一个例子使读者对该命令有更为深刻的理解。



将该段代码输入到SQLServerQueryAnalyzer窗口中运行后结果为:


注意:由于在ALERTPROCEDURE中使用了WITHENCTYPTION保留字,所以在查看修改后的存储过程源代码时看到是一些代码。


<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
原创粉丝点击