Verificare la presenza di indici identici / duplicati

Qual è il rischio in cui si può incorrere quando un progetto viene sviluppato da più persone, ovvero quando un database viene modellato da più mani?

Creare un indice che esiste già! :-(

SQL Server non fa nulla per venirci in aiuto o, almeno, non fa nulla in automatico.
Con questo script è possibile ottenere una lista degli indici identici / duplicati.

;WITH tIndex AS (
SELECT    object_id AS id ,    index_id AS indid ,    type,     name ,    (        SELECT            colid as colPosition        FROM sys.sysindexkeys        WHERE id = I.object_id AND indid = I.index_id            AND keyno > 0        FOR XML PATH      ) AS cols ,    (        SELECT includedCol FROM        (            SELECT                CASE keyno WHEN 0 THEN colid ELSE NULL END AS includedCol            FROM sys.sysindexkeys            WHERE id = I.object_id AND indid = I.index_id        ) T0        order by includedCol        FOR XML PATH    ) AS inc
FROM sys.indexes AS I )
SELECT    object_schema_name ( T1.id ) + ‘.’ + object_name ( T1.id ) as tableName,    T1.name AS indexName,    T2.name AS duplicateIndex,    S.used_page_count * 8 indexSizeKB
FROM tIndex AS T1
JOIN tIndex AS T2 ON     T1.type = T2.type AND    T1.id = T2.id AND     T1.indid < T2.indid AND    T1.cols = T2.cols AND    T1.inc = T2.inc
JOIN sys.dm_db_partition_stats  AS S ON    S.[object_id] = T2.id AND S.index_id = T2.indId
ORDER BY object_schema_name ( T1.id ) + ‘.’ + object_name ( T1.id ), T1.name
go