システム データベース
SQL Server には、次のシステム データベースが用意されています。
システム データベース | 説明 |
---|---|
master データベース | SQL Serverのインスタンスのシステムレベルの情報をすべて記録します。 |
msdb データベース | 警告やジョブのスケジュールを設定するために SQL Server エージェントにより使用されます。 |
model データベース | SQL Serverのインスタンスで作成されたすべてのデータベースのテンプレートとして使用されます。 データベース サイズ、照合順序、復旧モデル、およびその他のデータベース オプションなどの model データベースに変更を加えると、その変更内容は、それ以降に作成されるすべてのデータベースに適用されます。 |
Resource データベース | SQL Serverに装備されているシステム オブジェクトを格納する読み取り専用のデータベースです。 システム オブジェクトは、物理的には Resource データベースに保存されていますが、すべてのデータベースの sys スキーマに論理的に表示されます。 |
tempdb データベース | 一時オブジェクトや生成途中の結果セットを保存するためのワークスペースです。 |
システム データの変更
SQL Server では、ユーザーは、システム テーブル、システム ストアド プロシージャ、カタログ ビューなどのシステム オブジェクトに含まれている情報を直接更新できません。 SQL Server には、代わりに完全な管理ツール セットが用意されています。ユーザーは、これらのツールを使用して、システムを完全に管理し、データベース内のすべてのユーザーとオブジェクトを管理できます。 コーディネートは次のとおりです。
SQL Server Management Studioなどの管理ユーティリティ。
SQL-SMO API。 このツールを使用すると、プログラマはアプリケーションに SQL Server を管理するための完全な機能を含めることができます。
Transact-SQL スクリプトとストアド プロシージャ。 システム ストアド プロシージャと Transact-SQL DDL ステートメントを使用できます。
上記のツールを使用すると、アプリケーションをシステム オブジェクトの変更による影響から保護できます。 たとえば、 SQL Server では、新しいバージョンの SQL Server に追加された新機能をサポートするために、そのバージョンのシステム テーブルを変更する必要があることがあります。 多くの場合、システム テーブルを直接参照する SELECT ステートメントを実行しているアプリケーションでは、旧形式のシステム テーブルに依存しています。 そのような場合、システム テーブルに対して SELECT ステートメントを実行するアプリケーションが作成し直されるまで、サイトを新しいバージョンの SQL Server にアップグレードできない可能性があります。 SQL Server では、システム ストアド プロシージャ、DDL、および SQL-SMO の公開された各インターフェイスを考慮し、これらの旧バージョンとの互換性を維持できるように機能します。
SQL Server システム テーブルで定義されたトリガーでは、システムの動作が変更されることがあるので、このようなトリガーはサポートしていません。
注意
システム データベースを UNC 共有ディレクトリに置くことはできません。
システム データベース データの表示
アプリケーションに必要な情報を取得する唯一の方法でない限り、システム テーブルに直接クエリを実行する Transact-SQL ステートメントをコーディングしないでください。 代わりに、アプリケーションで、次のツールを使用してカタログ情報やシステム情報を取得することをお勧めします。
システム カタログ ビュー
SQL-SMO。
WMI (Windows Management Instrumentation) インターフェイス。
カタログ関数、メソッド、属性、または、ADO、OLE DB、ODBC などのアプリケーションで使用されるデータ API のプロパティ。
Transact-SQL システム ストアド プロシージャと組み込み関数。
Related Tasks
システム データベースのバックアップと復元 (SQL Server)
オブジェクト エクスプローラーのシステム オブジェクトの非表示