数据库中已存在具有该名称的对象,但该对象不存在

Ham*_*eza 0 sql sql-server-2008 sql-server-2008-r2

我有一个名为的表dbo.ProductValue,我想我已经删除了它。现在,当我想创建一个具有该名称的表时ProductValue,它会显示错误:

数据库中已存在名为 dbo.ProductValue 的对象

但事实上它不存在或者至少我看不到它。我有sa访问权限。

尝试:

  • 我关闭并重新打开窗口
  • 我重新启动了MSSQLSERVER服务

请帮我解决这个问题。

Jot*_*aBe 5

它显然不是一个表,但它确实存在于数据库中,所以让我们查找一下:

SELECT * FROM sys.sysobjects AS S
WHERE name = 'ProductValue'
Run Code Online (Sandbox Code Playgroud)

请记下parent_obj(例如 12345)。现在看看父对象是什么:

SELECT * FROM sys.sysobjects AS S WHERE id = 12345
Run Code Online (Sandbox Code Playgroud)

根据您的评论,这是表中的约束。第二个查询将为您提供表,现在您可以使用 SSMS(或 DDL 语句)来删除该对象,以便您可以在新表中使用该名称。

sys.objects 表的文档