非内存优化的表执行ALTER TABLE DROP INDEX操作失败。

22

我正在尝试删除一个表上创建的索引,但是我遇到了这个错误 -

仅支持对内存优化表执行“ALTER TABLE DROP INDEX”操作。

我需要删除这个索引才能删除表中的某个字段。有没有无需复制表并迁移所有数据的方法可以做到这一点?

5个回答

21

对于常规表格,您应该使用DROP INDEX语法:

DROP INDEX index_name ON tab_name;

ALTER TABLE

只有内存优化表才支持 ALTER TABLE ... ADD/DROP/ALTER INDEX 语法。


6
删除索引
DROP INDEX index_name ON table_name

添加索引
CREATE INDEX index_name ON table_name(column1, column2, ...);

4

仅可使用alter table语句在内存优化表上删除索引

ALTER TABLE 表名 DROP INDEX 索引名

或在非内存优化表上

DROP INDEX 索引名 ON 表名

自SQL Server 2016以来支持内存优化表。


1

请看这里:如果不是内存优化表,则只需使用“drop index”语句。


0
你需要使用 Drop Index <IndexName> On <TableName>

2
嗨,Sanjoy,感谢您的回答。您能否更新您的问题以解释为什么这可以解决提问者的问题?一个好的开始是链接到文档并引用重要的上下文部分。 - Connor Low
这并没有回答问题。一旦您拥有足够的声望,您将能够评论任何帖子;相反,提供不需要询问者澄清的答案。- 来自审核 - Oliver
@Oliver 这怎么可能是一条评论呢?它明显是回答。也许不是很好的回答,但毕竟是一个回答。 - Mark Rotteveel
你绝对是正确的。我在审核队列上有点匆忙,这似乎更像是应该放在评论中的内容。 - Oliver

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接