将表重命名为sp_help,无法重命名

时间:2014-01-15 13:11:19

标签: sql sql-server sql-server-2005

不知何故,我们的一个表被意外重命名为'sp_help'。

我们尝试使用sp_rename将其重命名为上一个表名,但是我们收到以下错误:

Msg 15225, Level 11, State 1, Procedure sp_rename, Line 332
No item by the name of 'MyDatabase.dbo.sp_help' could be found in the current database 'MyDatabase', given that @itemtype was input as '(null)'.

我们也试图在管理工作室中直接重命名,但错误相同。有没有其他方法可以将此表重命名为以前的名称?

1 个答案:

答案 0 :(得分:18)

更改dbo.sp_help对象的元数据并执行SWITCH。

以下是一个可以帮助您入门的测试用例:

CREATE TABLE dbo.t_Foo
(
    Bar         BIT
);
GO

EXECUTE dbo.sp_rename @objname = 'dbo.t_Foo', @newname = 'sp_help';
GO

CREATE TABLE dbo.t_Foo
(
    Bar         BIT
);
GO

ALTER TABLE [dbo].[sp_help]
SWITCH TO dbo.t_Foo;
GO

SELECT  *
FROM    dbo.t_Foo;
GO

DROP TABLE [dbo].[sp_help]
GO