Ich versuche alle Clustered-Indizes zu finden, die auf Spalten des Datentyps uniqueIdentifier aufbauen. Offensichtlich ist dies eine schreckliche Wahl für einen gruppierten Index, und ich versuche, alle von ihnen zu finden und sie zu entfernen. Das Skript, das ich bisher geschrieben habe, gibt alle gruppierten Indizes für jede Tabelle zurück, für die ein uniqueIdentifier vorhanden ist. Bitte helfen Sie. Hier ist das Skript:SQL Server - Skript, um alle Clustered-Indizes zu finden, die auf einem bestimmten Datentyp basieren
select distinct object_name(i.object_id) AS tablename, i.name AS indexname, i.type_desc as type
from sys.indexes i
join sys.index_columns ic on ic.object_id = i.object_id and ic.index_id = i.index_id
join sys.columns c on c.column_id = ic.index_column_id
join sys.types t on t.system_type_id = c.system_type_id
join sys.objects o on o.object_id = i.object_id
where t.name = 'uniqueidentifier'
and i.type_desc = 'clustered'
and object_name(i.object_id) not like 'sys%'
Es ist wie Ihre fehlende Bit aussieht, ist die sys.columns ON-Klausel, die – RichardTheKiwi
object_id umfassen sollte Es ist eine schreckliche Wahl ** ** wenn die Werte zufällig zugewiesen werden (zB durch 'newid()'). Es ist nicht notwendigerweise eine schreckliche Wahl, wenn sequentielle Werte zugewiesen werden. –