通过对象ID从SQL Server中删除索引

时间:2014-10-15 04:12:12

标签: object indexing

使用SQL Server 2012,我不知何故最终得到一个名为:

的索引
<Name of Missing Index, sysname,>

我不确定它是怎么发生的。我尝试使用以下方法删除此索引:

DROP INDEX EMAIL_ADDRESS.<Name of Missing Index, sysname,>

当然我不会收到预期的错误消息:

Incorrect syntax near '<'.

在SQL Server中查询DMV告诉我,我应该删除这个索引,这样我就不能这样做更令人沮丧。这是几年来一直啃我的小事之一。这些年来,我已经多次寻找答案了。我可能已经花了4个小时才找到一种方法来通过名称以外的东西来删除索引。什么都没有。

有人能帮助我吗?运行此查询:

SELECT * FROM SYS.INDEXES WHERE NAME = '<Name of Missing Index, sysname,>'

生成一个281104092的OBJECT_ID。有没有办法使用此ID删除对象?一定有,对吗?我是不是永远坚持这个疯狂的指数?

2 个答案:

答案 0 :(得分:0)

DROP INDEX EMAIL_ADDRESS.[<Name of Missing Index, sysname,>]

应该做的伎俩。方括号内的文本可以包含特殊字符,例如&lt;,&gt;,space等。

答案 1 :(得分:0)

尝试使用数据库所有者名称删除。它为我工作。

DROP INDEX ccl2.[TBL_HamdunSoft].[<Name of Missing Index, sysname,>]
Or 
DROP INDEX dbo.[TBL_HamdunSoft].[<Name of Missing Index, sysname,>]
相关问题