重命名存储过程

时间:2010-11-14 04:58:53

标签: sql-server stored-procedures

重命名存储过程时,我发现了以下功能。

sp_RENAME 'User_Validate', 'sp_UserValidate'

当我sp_helptext sp_UserValidate时,我看到的程序名称是

CREATE PROCEDURE User_Validate  
(@userEmail nvarchar(200),  
@userPassword nvarchar(32))....  

为什么名称不会在存储过程中更新?

但是当我检查时

select * from sys.procedures

我发现名称字段正在更新?它背后的原因是什么?我能得出的唯一合乎逻辑的结论是,最好放弃程序并使用新名称重新创建。

编辑1: 如果我sp_helptext User_Validate它返回“对象'User_Validate'在数据库'Process'中不存在或对此操作无效。”但是当我查看存储过程时,名称User_Validate仍然存在。

注意:我知道重命名存储过程不是一个好习惯,我问的问题是出于好奇。

2 个答案:

答案 0 :(得分:2)

sp_helptext不对该过程进行反向工程,它只显示创建过程的原始T-SQL批处理,包括注释和空格。

答案 1 :(得分:0)

不建议使用sp_rename重命名存储过程,视图,触发器和用户定义的函数

您的结论是对的,您应该删除并使用新名称重新创建它。 BOL中说明了相同的内容 - Rename a Stored Procedure

您还应该检查dependencies of a stored procedure,因为重命名存储过程可能会导致依赖对象失败,如果它们未更新以匹配更改

希望这有帮助