MSSQL: How to find all database indexes on column?
UPDATED: 18 March 2014
Tags:
Database Index
,
MSSQL
I was playing with MSSQL system tables for fun and popup one thing that lets try to find all indexes on column. I ended up with one long query so thought let me post it and you guys don't have work for this query again.
Professionals I don't have to explain much about these tables. Beginner try to work around this table. It'll help you lot in future, way to become database expert in other word Database Administrator(DBA).
Professionals I don't have to explain much about these tables. Beginner try to work around this table. It'll help you lot in future, way to become database expert in other word Database Administrator(DBA).
/* Change table name and column name in where condition */
SELECT distinct ind.name AS [idx_name], t.name AS [table_name], c.name AS [column_name], ic.is_included_column
FROM sys.indexes ind
RIGHT JOIN sys.tables t
ON ind.object_id = t.object_id
RIGHT JOIN sys.columns c
ON t.object_id = c.object_id
RIGHT JOIN sys.index_columns ic
ON ind.index_id = ic.index_id
AND c.column_id = ic.column_id
WHERE ind.is_primary_key = 0
AND ind.is_unique_constraint = 0
AND t.is_ms_shipped = 0
AND ind.name IS NOT NULL
AND ind.is_unique IN (0,1)
AND t.name = 'table_name'
AND c.name = 'column_name'
AND OBJECT_NAME(ic.object_id) = 'table_name'
There ain't much to write for this query. Change table_name and column_name.
Tags:
Database Index
,
MSSQL
0 comments :