Ich arbeite an der Dokumentation meiner Datenbanken und möchte eine Liste aller Indizes in meiner Datenbank erstellen. Der Grund, warum ich dies tun möchte, ist, dass ich Änderungen an meinen Indizes über die Zeit verfolgen kann. Ich habe derzeit eine Tabelle mit allen Indizes, die sich seit der Erstellung dieser Tabelle geändert haben, aber nicht alle Indizes. Anstatt jeden Index ausschreiben zu müssen, möchte ich nur die Liste generieren können. Ich habe mit den Systemansichten gespielt, konnte es aber nicht herausfinden.
Wie kann ich eine Liste von Indizes und die create-Anweisung für jeden Index erstellen?
sql-server
sql-server-2008
DForck42
quelle
quelle
Antworten:
Ich habe anscheinend kein solches Skript in meiner Toolbox, habe aber bei meiner Suche einige andere gefunden.
Hast du dieses Skript schon gesehen?
http://www.sqlservercentral.com/scripts/Indexing/31652/
Es wird ein Cursor verwendet, was wahrscheinlich nicht unbedingt erforderlich ist. Normalerweise kann ich sie jedoch bereinigen, um einen Cursor zu vermeiden, indem ich FOR XML und möglicherweise ein eigenartiges Update verwende, um die Zeichenfolgen zu verketten.
Auch gefunden diese:
http://www.sqlservercentral.com/Forums/Topic796512-391-1.aspx
http://www.sqlservercentral.com/Forums/Topic401784-562-2.aspx
quelle
Das hat bei Technet perfekt funktioniert :
quelle
Ich habe diese Antwort auf mssqltips gefunden und dies ist der Link zu dem Artikel, den ich dort gefunden habe.
Ich poste auch die TSQL für mögliche Link-Rot in der Zukunft.
T-SQL-Skript zum Löschen aller SQL Server-Indizes
T-SQL-Skript zum Erstellen aller SQL Server-Indizes
Hoffe das hilft jemandem.
quelle
--Versuchen
quelle
Ich verwende SQL 2014 und Devraj Gadhavis Antwort benötigte einige Korrekturen. Der Füllfaktor 0 muss 100 sein und ich brauchte
GO
Anweisungen, damit es funktioniert.quelle
GO
Aussage. Könnten Sie außerdem auf die anderen Unterschiede hinweisen (und erklären, warum sie benötigt werden)?