Abteilung praktische Tipps: mit folgendem SQL kann man sich fix alle Indizes einer MS SQL Datenbank auslesen:
SELECT i.object_id, i.name, o.name
FROM sys.indexes as i, sys.objects as o
WHERE i.name not like 'queue%'
and i.object_id = o.object_id
AND o.name NOT like 'sys%'
Sehr praktisch und sehr übersichtlich, wenn man schnell sehen kann, auf welcher Tabelle welcher Index liegt. Kann man echt oft brauchen, war mir sofort ein Snippet wert.
4 thoughts on “MS SQL: alle Indizes einer Datenbank per SQL abfragen”
Schreibe einen Kommentar
Du musst angemeldet sein, um einen Kommentar abzugeben.
TOP Beitrag … zufällig gefunden.
Wird mir sehr helfen !!
TOP Beitrag … zufällig gefunden.
Wird mir sehr helfen !!
Hier eine kleine Abwandlung des Scripts
SELECT i.name as name, o.name as tablename, i.object_id as id, i.is_unique as unique, *
FROM sys.indexes as i, sys.objects as o
WHERE i.object_id = o.object_id
and o.type = ‚U‘
–and i.type = 1 — das sind PK-Indizes
–and i.type = 2 — das sind Column-Indizes (CREATE UNIQUE INDEX …)
order by o.name asc, i.name asc
Anmerkungen:
1: o.type = ‚U‘ selektiert nur Benutzertabellen und lässt alle Systemtabellen außen vor
2: i.type = 1 selektiert Private-Key-Indizes
3: i.type = 2 selektiert zusätzliche Indizes, die mit CREATE {UNIQUE] INDEX erzeugt wurden.
Hier eine kleine Abwandlung des Scripts
SELECT i.name as name, o.name as tablename, i.object_id as id, i.is_unique as unique, *
FROM sys.indexes as i, sys.objects as o
WHERE i.object_id = o.object_id
and o.type = ‚U‘
–and i.type = 1 — das sind PK-Indizes
–and i.type = 2 — das sind Column-Indizes (CREATE UNIQUE INDEX …)
order by o.name asc, i.name asc
Anmerkungen:
1: o.type = ‚U‘ selektiert nur Benutzertabellen und lässt alle Systemtabellen außen vor
2: i.type = 1 selektiert Private-Key-Indizes
3: i.type = 2 selektiert zusätzliche Indizes, die mit CREATE {UNIQUE] INDEX erzeugt wurden.