使用重命名选择sp名称时,我错误地按了' s'并按Tab键。然后它被错误地重命名。我不知道Sp名字。我如何获得旧的sp名称。请建议我。
答案 0 :(得分:0)
重命名存储过程,函数,视图或触发器不会 更改定义中相应对象名称的名称 sys.sql_modules目录视图的列。因此,我们建议 sp_rename不能用于重命名这些对象类型。相反,放弃 并使用新名称重新创建对象。
我测试了相同的内容,并且我得到了旧的对象名称。
GO
CREATE PROCEDURE PROC_MY_SP
AS
BEGIN
SELECT 1 AS COL
END
GO
SELECT OBJECT_ID('PROC_MY_SP') --789786071
GO
SELECT * FROM sys.sql_modules WHERE OBJECT_ID('PROC_MY_SP')= OBJECT_ID
GO
sp_rename 'PROC_MY_SP', 'PROC_YOUR_SP'
GO
SELECT OBJECT_ID('PROC_YOUR_SP') --789786071
--Changing the SP Name wont change the objectID
GO
SELECT definition,* FROM sys.sql_modules WHERE OBJECT_ID=789786071
--Or Simply pass your new sp name
SELECT definition, * FROM sys.sql_modules WHERE OBJECT_ID('PROC_YOUR_SP')= OBJECT_ID
此处定义列仅显示旧的sp名称。