Pet*_*ert 24 sql sql-server sql-server-2008
我正在尝试使用sp_rename系统sproc重命名SQL Server 2008中的存储过程.第三个参数虽然给我带来了困难,但我仍然收到以下错误:
Msg 15249, Level 11, State 1, Procedure sp_rename, Line 75
Error: Explicit @objtype 'P' is unrecognized.
Run Code Online (Sandbox Code Playgroud)
正如消息所示,我正在传递P参数的值.我这样称呼sproc:
EXEC sp_rename @objName = @procName, @newname = @WrappedName, @objtype = 'P';
Run Code Online (Sandbox Code Playgroud)
我仔细检查了文档,其中说这是来自sys.objects的值.我跑了以下来仔细检查我是不是疯了
select * from sys.objects where name = 'MySprocName'
Run Code Online (Sandbox Code Playgroud)
确实返回的类型是P.
有谁知道我应该通过什么?我不想把它留空,因为我正在创建一个通用的sproc来重命名任意的sprocs,如果sproc和其他东西之间有名称冲突,我不想担心这个.
Pie*_*ant 49
只需省略@objtype参数(默认为null)即可.
EXEC sp_rename 'sp_MyProc', 'sp_MyProcName'
Run Code Online (Sandbox Code Playgroud)
您将收到以下警告,但该过程将被重命名
警告:更改对象名称的任何部分可能会破坏脚本和存储过程.
与其他人一样,您应该删除并重新创建该过程.