不再需要存储过程时可将其删除。如果另一个存储过程调用某个已删除的存储过程,则 Microsoft® SQL Server™ 2000 会在执行该调用过程时显示一条错误信息。但如果定义了同名和参数相同的新存储过程来替换已删除存储过程,那么引用该过程的其它过程仍能顺利执行。例如,如果存储过程 proc1 引用存储过程 proc2,而 proc2 被删除,但由创建了另一个名为 proc2 的存储过程,现在 proc1 将引用这一新存储过程,proc1 也不必重新编译。
存储过程分组后,将无法删除组内的单个存储过程。删除一个存储过程会将同一组内的所有存储过程都删除。
1、删除存储过程
Transact-SQL(参考)
企业管理器:
如何删除存储过程?
展开服务器组,然后展开服务器。
展开"数据库"文件夹,展开存储过程所属的数据库,然后单击"存储过程"文件夹。
在详细信息窗格中右击要删除的存储过程,然后单击"删除"命令。
若要查看删除此存储过程对数据库的影响,单击"显示相关性"命令。
单击"全部除去"按钮。
2、删除扩展存储过程
I、sp_dropextendedproc:
除去扩展存储过程。
语法
sp_dropextendedproc [ @functname = ] 'procedure'
参数
[@functname =] 'procedure'
将要除去的扩展存储过程的名称。procedure 的数据类型为 nvarchar(517),没有默认值。
返回代码值
0(成功)或 1(失败)
结果集
无
注释
执行 sp_dropextendedproc 可以将扩展存储过程名从 sysobjects 表除去,并且从 syscomments 表删除相应的条目。
不能在事务内部执行 sp_dropextendedproc。
权限
只有 sysadmin 固定服务器角色的成员才可以执行 sp_dropextendedproc。
示例
下面的示例除去 xp_diskfree 扩展存储过程。
说明 为了下面的示例正常工作而不返回错误信息,这个扩展存储过程必须已经存在。
USE master
EXEC sp_dropextendedproc 'xp_hello'
企业管理器:
如何删除扩展存储过程?
展开服务器组,然后展开服务器。
展开"数据库"文件夹,展开 master 数据库,然后单击"扩展存储过程"文件夹。
在详细信息窗格中右击要删除的扩展存储过程,然后单击"删除"命令。
要查看删除此扩展存储过程对数据库的影响,单击"显示相关性"命令。
单击"全部除去"按钮。