Sql server 重命名存储过程

Sql server 重命名存储过程,sql-server,stored-procedures,Sql Server,Stored Procedures,在重命名存储过程时,我观察到了以下特性 sp_RENAME 'User_Validate', 'sp_UserValidate' 当我执行sp\u helptext sp\u UserValidate时,我看到的过程名称是 CREATE PROCEDURE User_Validate (@userEmail nvarchar(200), @userPassword nvarchar(32)).... 为什么存储过程中没有更新名称 但是当我检查的时候 select * from s

在重命名存储过程时,我观察到了以下特性

sp_RENAME 'User_Validate', 'sp_UserValidate'
当我执行
sp\u helptext sp\u UserValidate
时,我看到的过程名称是

CREATE PROCEDURE User_Validate  
(@userEmail nvarchar(200),  
@userPassword nvarchar(32))....  
为什么存储过程中没有更新名称

但是当我检查的时候

select * from sys.procedures
我发现名称字段正在更新?这背后的原因是什么?我能得出的唯一合乎逻辑的结论是,最好放弃这个过程,用一个新名称重新创建

编辑1: 如果执行
sp\u helptext User\u Validate
操作,则返回“数据库'Process'中不存在对象'User\u Validate'或该对象对此操作无效”。但查看存储过程时,名称User\u Validate仍然存在


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

sp\u helptext
不会对过程进行反向工程,它只是显示创建过程的原始T-SQL批,包括注释和空白。

sp\u重命名不建议用于重命名存储过程、视图、触发器和用户定义函数

你的结论是正确的,你应该删除它并用一个新名字重新创建它。BOL-

还应检查,因为如果相关对象未更新以匹配更改,重命名存储过程可能会导致相关对象失败


希望这有帮助

我使用sp_helptext查看过程,之所以使用它是为了强调一个事实,即当我使用sp_helptext查看存储过程(代码)时,我发现过程的名称没有更改。。如果我假定sp_helptext执行一些神圣的功能而不是检查文件的上下文,那将是愚蠢的。我的问题是,为什么过程中的名称没有更改?在理想情况下,
sp_rename
可以进入为原始批保留的文本,解析它,并替换过程名称。但事实并非如此,我想对于开发工作来说,投资回报太低了。