存储过程分组后,将无法删除组内的单个存储过程。删除一个存储过程会将同一组内的所有存储过程都删除。
从当前数据库中删除一个或多个存储过程或过程组。
DROP PROCEDURE { procedure } [ ,...n ]
procedure
是要删除的存储过程或存储过程组的名称。过程名称必须符合标识符规则。有关更多信息,请参见javascript:hhobj_1.Click()">使用标识符。可以选择是否指定过程所有者名称,但不能指定服务器名称和数据库名称。
n
是表示可以指定多个过程的占位符。
若要查看过程名称列表,请使用 sp_help。若要显示过程定义(存储在 syscomments 系统表内),请使用 sp_helptext。除去某个存储过程时,将从 sysobjects 和 syscomments 系统表中删除有关该过程的信息。
不能除去组内的个别过程,必须除去整个过程组。
不论用户定义的系统过程(以 sp_ 为前缀)是否为当前数据库,都将其从 master 数据库中除去。如果在当前的数据库未找到系统过程,则 Microsoft® SQL Server™ 尝试将其从 master 数据库除去。
默认情况下,将 DROP PROCEDURE 权限授予过程所有者,该权限不可转让。然而,db_owner 和 db_ddladmin 固定数据库角色成员和 sysadmin 固定服务器角色成员可以通过在 DROP PROCEDURE 内指定所有者除去任何对象。
下例删除 byroyalty 存储过程(在当前数据库内)。
DROP PROCEDURE byroyalty GO