我们可以使用ALTER PROCEDURE 语句修改已经存在的存储过程。
可以使用DROP PROCEDURE 语句删除那些不需要的存储过程。
1、修改存储过程
语法如下:
ALTER PROCEDURE 存储过程名
@参数名 数据类型 (output)
AS
SQL语句
GO
在使用ALTER PROCEDURE语句时,考虑以下几方面的事项:
(1)如果要修改具有任何选项的存储过程,例如WITH ENCRYPTION选项,必须在ALTER PROCEDURE语句中包括该选项以保留该选项提供的功能。
(2)ALTER PROCEDURE语句只能修改一个单一的过程,如果过程调用其他存储过程,嵌套的粗糙你过程不受影响。
(3)在默认状态下,允许该语句的执行者是存储过程最初的创建者,sysadmin服务器角色成员和db_owner与db_ddladmin固定的数据库角色成员,用户不能授权执行ALTER PROCEDURE语句。
不过,建议不要直接修改系统存储过程,相反,可以通过从现有的存储过程中复制语句来创建用户定义的系统存储过程,然后修改它以满足要求。
2、删除存储过程
语法如下:
DROP PROC 存储过程名
如果另一个存储过程调用某个已被删除的存储过程,SQL Server 2008将在执行调用进程时显示一条错误信息。但是,如果定义了具有相同名称和参数的新存储过程来替换已被删除的存储过程,那么引用该过程的其他过程仍能成功执行。
例如:如果存储过程pro1引用存储过程pro2,而pro2已被删除,但又创建了另一个名为pro2的存储过程,现在pro1将引用这一新存储过程。pro1也不必重新创建。
注意:在删除存储过程之前,先执行sp_depends存储过程来确定是否有对象依赖于此存储过程。
网友评论