临时表上的索引在表被删除的时候会被删除吗?
Posted
技术标签:
【中文标题】临时表上的索引在表被删除的时候会被删除吗?【英文标题】:Are indexes on temporary tables deleted when the table is deleted? 【发布时间】:2010-09-10 15:34:33 【问题描述】:以下 SQL 是否也会删除索引 - 还是必须单独删除?
CREATE TABLE #Tbl (field int)
CREATE NONCLUSTERED INDEX idx ON #Tbl (field)
DROP TABLE #Tbl
【问题讨论】:
【参考方案1】:是的。您可以在 MSSQL 帮助中搜索 CREATE INDEX 文章,那里说:
"索引可以临时创建 桌子。当表被删除或 会话结束,所有索引和 触发器被丢弃。”
【讨论】:
显然。如果书的所有页面都撕掉了,索引也没用,也应该撕掉:) 这就是我的想法,但我遇到的问题是,当我重新创建临时表然后尝试重新创建索引(聚集主键约束)时,我收到此错误:CREATE UNIQUE INDEX 语句终止,因为为对象名称“dbo.##TempFormattedSnapshot”和索引名称“PK_TempSampleID”找到重复键。重复键值为 (422097)。【参考方案2】:它将被自动删除,因为没有任何东西可以索引。在这方面将其视为子对象。
【讨论】:
【参考方案3】:drop table 将删除索引。 Drop Index 采用索引名称和表名称。
在这种情况下是 DROP INDEX idc ON #tbl
如果要删除索引但要离开表,可以调用它。
【讨论】:
以上是关于临时表上的索引在表被删除的时候会被删除吗?的主要内容,如果未能解决你的问题,请参考以下文章
postgresql----temporary table和unlogged table