开发者

Query to get tables having indexing in a particular database

Can anyone provide me the query in sql server to extract the tables that have been done indexing, for a particular datab开发者_开发技巧ase....


Your question is somewhat unclear. This will return all tables with at least one index.

select DISTINCT OBJECT_NAME(object_id)  
from sys.indexes 
where type<>0

Or for SQL Server 2000

select DISTINCT OBJECT_NAME(id)   
from sysindexes 
where indid<>0


select object_name(object_id),* from sys.indexes where type <> 0

This will return you all the indexes available in your database. But beware, it also lists the system tables.


The sys.indexes DMV should have what you're looking for:

SELECT TableName = object_name(Object_Id)
     , IndexName = Name
     , IndexType = Type_Desc

 FROM sys.indexes

The Type_Desc column will tell you whether you're looking at a heap, a clustered index, or a non-clustered index.

Joining to sys.tables will limit the results to user tables and leave out system tables:

SELECT TableName = st.Name
     , IndexName = si.name
     , IndexType = si.type_desc
  FROM SYS.indexes si
  JOIN SYS.tables st
    ON si.object_id  = st.object_id
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜