在SQL Server 2008中获取重影错误

时间:2012-03-23 17:39:44

标签: sql-server

似乎我在尝试建立关系时遇到了冲突,因为我在数据库中有一个表然后被删除了。该表未显示在对象资源管理器中,但错误显示“发生异常,新名称已被用作OBJECT名称并将导致重复。”删除对象的所有引用,而不仅仅是表名。

3 个答案:

答案 0 :(得分:7)

您可能在数据库中有另一个具有该名称的对象。运行

SELECT *
 from sys.objects
 where name = 'YourName'

看看弹出的是什么。 (“对象”包括表格,视图,过程,函数,默认值以及许多其他模糊的东西。)

答案 1 :(得分:0)

每次运行需要删除表的脚本然后立即将另一个表重命名为同一个名称时,我都会收到相同的错误,并在另一个论坛中遇到此建议:

  

重命名时将架构从新表名中删除:

sp_RENAME '[schema.OldTableName]' , '[NewTableName]'

我无法解释它为何有效,但它确实保存了我的代码。

(感谢:https://social.msdn.microsoft.com/forums/sqlserver/en-US/654678f2-313f-4dad-8bd2-1741b01561f3/find-object-sprename-issue上的Rhomeroo)

答案 2 :(得分:0)

对我有帮助的解决方案:
先决条件:
我需要将“ dbo.spAddUser”重命名为“ dbo.sp_AddUser”。

我做了什么:
右键单击“ dbo.spAddUser”->修改。
复制所有代码。
右键单击“ dbo.spAddUser”->删除。
添加新过程。
粘贴复制的代码,然后将“ Alter”替换为“ Create”并更正过程的名称。
执行。

成功!