Frage

Gibt es System gespeicherte Procs die Statistiken und Metadaten eine Datenbank selbst in SQL Server 2005?

zu berichten

Was 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.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top