当我错误地更新sp名称时检索旧sp名称

时间:2017-02-03 06:09:46

标签: sql-server stored-procedures

使用重命名选择sp名称时,我错误地按了' s'并按Tab键。然后它被错误地重命名。我不知道Sp名字。我如何获得旧的sp名称。请建议我。

1 个答案:

答案 0 :(得分:0)

我在sp_rename (Transact-SQL)

中找到的MSDN
  

重命名存储过程,函数,视图或触发器不会   更改定义中相应对象名称的名称   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名称。