Iver's web place

Navegador de Archivos

Calendario del Blog

February 2012
Sun Mon Tue Wed Thu Fri Sat
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 1 2 3

General

Mostrar los índices de una tabla en SQL Server 2005

Muchas veces requerimos conocer que índices existentes en la base de datos, para esto podemos emplear el siguiente script.


 
DECLARE _at_IndexInfo  TABLE (index_name         varchar(250)
                          ,index_description  varchar(250)
                          ,index_keys         varchar(250)
                          )
 
INSERT INTO _at_IndexInfo
exec sp_msforeachtable 'sp_helpindex ''?'''
SELECT index_name, FROM _at_IndexInfo
 
 


Ahora que si lo que deseas es listar solamente los índices de una tabla en particular sería algo como


 
sp_helpindex 'Production.Product'
 

Y si quieres algo más como el esquema, es mejor una consulta como:


 
SELECT  s.name AS [Schema], t.name AS TableName,
    ind.name, ind.index_id, ic.index_column_id, col.name,
    ind.*, ic.*, col.*
FROM sys.indexes ind
        INNER JOIN sys.index_columns ic
                ON ind.object_id = ic.object_id AND ind.index_id = ic.index_id
        INNER JOIN sys.COLUMNS col
                ON ic.object_id = col.object_id AND ic.column_id = col.column_id
        INNER JOIN      sys.TABLES t
                ON ind.object_id = t.object_id
        INNER JOIN sys.schemas s
                ON t.schema_id = s.schema_id
WHERE
    ind.is_primary_key = 0
    AND ind.is_unique = 0
    AND ind.is_unique_constraint = 0
    AND t.is_ms_shipped = 0
        AND t.name LIKE '<Table_Name>'
        AND s.name LIKE '<Schema_Name>'
ORDER BY
    t.name, ind.name, ind.index_id, ic.index_column_id
 
 
Trackback URI: http://es.iver.com.mx/index.php/trackback/174

Dejar un comentario

Escribe el código Captcha que estás viendo

Fuentes XML de comentario: RSS | Atom

Estadísticas de visitantes

5
54
27817