<script type="text/javascript"> 
  </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>


删除存储过程不再需要存储过程时可将其删除。如果另一个存储过程调用某个已删除的存储过程,则Microsoft®SQLServer™2000会在执行该调用过程时显示一条错误信息。但如果定义了同名和参数相同的新存储过程来替换已

删除存储过程,那么引用该过程的其它过程仍能顺利执行。例如,如果存储过程proc1引用存储过程proc2,而proc2被删除,但由创建了另一个名为proc2的存储过程,现在proc1将引用这一新存储过程,proc1也不必重新编译。


存储过程分组后,将无法删除组内的单个存储过程。删除一个存储过程会将同一组内的所有存储过程都删除。


DROPPROCEDURE


从当前中删除一个或多个存储过程或过程组。


语法 

DROPPROCEDURE{procedure}[,...n] 

参数 

procedure


是要删除的存储过程或存储过程组的名称。过程名称必须符合标识符规则。有关更多信息,请参见使用标识符。可以选择是否指定过程所有者名称,但不能指定服务器名称和数据库名称。



n



是表示可以指定多个过程的占位符。


注释


若要查看过程名称列表,请使用sp_help。若要显示过程定义(存储在syscomments系统表内),请使用sp_helptext。除去某个存储过程时,将从sysobjects和syscomments系统表中删除有关该过程的信息。



不能除去组内的个别过程,必须除去整个过程组。



不论用户定义的系统过程(以sp_为前缀)是否为当前数据库,都将其从master数据库中除去。如果在当前的数据库未找到系统过程,则Microsoft®SQLServer™尝试将其从master数据库除去。


权限


默认情况下,将DROPPROCEDURE权限授予过程所有者,该权限不可转让。然而,db_owner和db_ddladmin固定数据库角色成员和sysadmin固定服务器角色成员可以通过在DROPPROCEDURE内指定所有者除去任何对象。


示例


下例删除byroyalty存储过程(在当前数据库内)。


DROPPROCEDUREbyroyaltyGO
<script type="text/javascript"> 
 </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 

  <script type="text/javascript"> 
  </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>