如何在 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 中创建的临时表上查找索引列表的主要内容,如果未能解决你的问题,请参考以下文章
如何在 SQL Server Reporting Services 2008 中复制报表
从 VS 2012 在 SQL Server 2012 数据库项目中创建 SQL 代理作业