SQL Server 2005 でデータベース自体の統計情報とメタデータを報告するシステム ストアド プロシージャはありますか?
私が必要としているのは、テーブルのリスト、各テーブルのサイズ、各テーブルの行数などを出力する簡単な方法です。個々のテーブルとメタデータのストアド プロシージャも役立ちます。
アドバイスをいただければ幸いです。
SQL Server 2005 でデータベース自体の統計情報とメタデータを報告するシステム ストアド プロシージャはありますか?
私が必要としているのは、テーブルのリスト、各テーブルのサイズ、各テーブルの行数などを出力する簡単な方法です。個々のテーブルとメタデータのストアド プロシージャも役立ちます。
アドバイスをいただければ幸いです。
はい、データ ディクショナリ テーブルでこれを行うことができます。データ ディクショナリの主なテーブルは、sys.objects、sys.columns、sys.indexes、sys.foreign_keys 、およびsys.sql_modulesです。システム データ ディクショナリを使用してデータベースを SQL スクリプトにリバース エンジニアリングするさまざまなクエリの例については、このスタックオーバーフローの投稿をご覧ください。
領域使用量をデータ ディクショナリから取得するのは少し複雑ですが、sp_spaceusedは単一のテーブルに対してそれを行います。これをsp_msforeachtableでラップして、一連のテーブルを反復処理し、すべてのテーブルのレポートを取得できます。
システム ビュー、特に information_schema.tables を見てください。これらのプロシージャーは、探している多くのデータも取得します。
sp_helpdb dbname
sp_help objectname
sp_spaceused tablename
sysobjects
etc... テーブルを直接クエリする代わりに、INFORMATION_SCHEMA
ビューを使用できます。
実際、sysobjects
は ではテーブルでしたSQL SErver2000
が、SQL 2005
では として実装され、view
後方互換性を維持するために保持されています。