如何在 SQL Server 2012 中创建的临时表上查找索引列表

Posted

技术标签:

【中文标题】如何在 SQL Server 2012 中创建的临时表上查找索引列表【英文标题】:How do I find a list of indexes on a temporary table that I've created in SQL Server 2012 【发布时间】:2017-03-06 12:51:30 【问题描述】:

请有人帮我获取我在 SQL Server 2012 中创建的临时表的索引列表

【问题讨论】:

【参考方案1】:
CREATE TABLE #tmpTable (ID BIGINT PRIMARY KEY, INDEXCOLUMN BIGINT)

IF NOT EXISTS(SELECT * FROM tempdb.sys.indexes WHERE name = 'IX_TMPINDEX' AND OBJECT_ID = object_id('tempdb..#tmpTable'))
BEGIN
CREATE NONCLUSTERED INDEX IX_TMPINDEX ON #tmpTable (INDEXCOLUMN)    
END

GO 

SELECT * FROM tempdb.sys.indexes WHERE OBJECT_ID = object_id('tempdb..#tmpTable')

【讨论】:

你为什么不能使用类似 SELECT object_id('tempdb..IX_TMPINDEX');或者你可以吗?【参考方案2】:

这是一种方法,使用sp_helpindex

CREATE TABLE #temp (id int, val1 int)

CREATE INDEX ix_t1 on #temp (id)

EXEC tempdb.dbo.sp_helpindex '#temp'

【讨论】:

以上是关于如何在 SQL Server 2012 中创建的临时表上查找索引列表的主要内容,如果未能解决你的问题,请参考以下文章

您如何将 main 中创建的实例传递给类?

如何在 SQL Server Reporting Services 2008 中复制报表

从 VS 2012 在 SQL Server 2012 数据库项目中创建 SQL 代理作业

在 SQL Server 2012 中创建以日期为范围分区的表

如何将我之前在 sql 中创建的列更改为外键

SQLServer2012不能用2008建的数据库。