临时表被删除时,索引也会被删除吗?

22

以下的 SQL 是否也会移除索引 - 还是必须要单独删除索引?

CREATE TABLE #Tbl (field int)

CREATE NONCLUSTERED INDEX idx ON #Tbl (field)

DROP TABLE #Tbl
3个回答

25

是的,它们是可以创建在临时表上的。你可以查询MSSQL帮助文档中的CREATE INDEX文章来查看:

"可以在临时表上创建索引。当该表被删除或会话结束时,所有的索引和触发器也将被删除。"


显然,如果书的所有页面都被撕掉了,目录也就无用了,应该一并撕掉 :) - Reversed Engineer
这正是我所想的,但我遇到的问题是,当我重新创建临时表并尝试重新创建索引(聚集主键约束)时,我遇到了这个错误:CREATE UNIQUE INDEX语句终止,因为在对象名“dbo.##TempFormattedSnapshot”和索引名“PK_TempSampleID”中找到了重复键。重复键值为(422097)。 - user2430797

6

当没有剩余内容可供索引时,它将自动被删除。在这方面,可以将它视为子对象。


2

删除表将会移除索引。DROP INDEX需要输入索引名称和表名。

在这种情况下,应该使用 DROP INDEX idc ON #tbl 命令,如果你想要删除索引但保留表格。


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