我正尝试使用sp_rename系统存储过程来重命名SQL Server 2008中的存储过程。然而,第三个参数让我困扰,我一直收到以下错误:
Msg 15249, Level 11, State 1, Procedure sp_rename, Line 75
Error: Explicit @objtype 'P' is unrecognized.
正如消息所示,我将一个 P 作为参数的值传递。我这样调用 sproc:
EXEC sp_rename @objName = @procName, @newname = @WrappedName, @objtype = 'P';
我仔细查阅了文档,文档中说明这是从sys.objects获取的值。我运行了以下代码,以确保我没有疯掉。
select * from sys.objects where name = 'MySprocName'
实际返回的类型是 P。
有人知道我应该传递什么吗?我不想留空,因为我正在创建一个通用的存储过程来重命名任意的存储过程,如果一个存储过程与其他东西发生名称冲突,我不想担心这个问题。