Gibt es eine schnelle Möglichkeit, Datenbank-Metadaten in SQL Server 2005 zu berichten?
-
19-08-2019 - |
Frage
Gibt es System gespeicherte Procs die Statistiken und Metadaten eine Datenbank selbst in SQL Server 2005?
zu berichtenWas ich brauche, ist eine schnelle Möglichkeit, eine Liste von Tabellen, die Größe jeder Tabelle, die Anzahl der Zeilen in jeder Tabelle und so weiter ausgeben. Gespeicherte Prozeduren für einzelne Tabellen und Metadaten würden auch nützlich sein.
Rat geschätzt.
Lösung
Ja, die Data Dictionary-Tabellen können Sie dies tun. Die wichtigsten Tabellen im Data Dictionary sind sys.objects , sys.columns , sys.indexes , sys.foreign_keys und sys.sql_modules . Ein Beispiel für eine Vielzahl von Abfragen, die das Systemdatenwörterbuch verwenden, um eine Datenbank zu einem SQL-Skript eines Reverse-Engineering, werfen Sie einen Blick auf diese Stackoverflow Posting.
Raumnutzung zu erhalten ist etwas verworren aus den Daten zu tun dictionarybut sp_spaceused wird es für eine einzelne Tabelle tun. Sie können diese wickeln mit sp_msforeachtable über eine iterieren Satz von Tabellen und den Bericht für alle Tabellen erhalten.
Andere Tipps
Werfen Sie einen Blick auf die Systemansichten, insbesondere INFORMATION_SCHEMA.TABLES. Diese Procs wird auch eine Menge der Daten erhalten Sie suchen.
sp_helpdb dbname
sp_help objectname
sp_spaceused tablename
Statt Abfrage der sysobjects
etc ... Tabellen direkt, können Sie die INFORMATION_SCHEMA
Ansicht verwenden.
In der Tat war die sysobjects
eine Tabelle in SQL SErver2000
, aber in SQL 2005
, wird es als view
umgesetzt, und es gehalten wird, Rückwärtskompatibilität zu erhalten.