不知何故,我们的一个表被意外重命名为'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)'.
我们也试图在管理工作室中直接重命名,但错误相同。有没有其他方法可以将此表重命名为以前的名称?
答案 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