重命名存储过程时,我发现了以下功能。
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仍然存在。
注意:我知道重命名存储过程不是一个好习惯,我问的问题是出于好奇。
答案 0 :(得分:2)
sp_helptext
不对该过程进行反向工程,它只显示创建过程的原始T-SQL批处理,包括注释和空格。
答案 1 :(得分:0)
不建议使用sp_rename重命名存储过程,视图,触发器和用户定义的函数
您的结论是对的,您应该删除并使用新名称重新创建它。 BOL中说明了相同的内容 - Rename a Stored Procedure
您还应该检查dependencies of a stored procedure,因为重命名存储过程可能会导致依赖对象失败,如果它们未更新以匹配更改
希望这有帮助