SQL Server には、次のシステム データベースが含まれています。
システム データベース | 説明 |
---|---|
マスター データベース | SQL Server のインスタンスのすべてのシステム レベルの情報を記録します。 |
msdb Database | アラートとジョブをスケジュールするために SQL Server エージェントによって使用されます。 |
モデルデータベース | SQL Server のインスタンスで作成されたすべてのデータベースのテンプレートとして使用されます。 データベース サイズ、照合順序、復旧モデル、その他のデータベース オプションなど、 モデル データベースに加えられた変更は、後で作成されたすべてのデータベースに適用されます。 |
リソース データベース | SQL Server に含まれるシステム オブジェクトを含む読み取り専用データベースです。 システム オブジェクトは リソース データベースに物理的に永続化されますが、論理的にはすべてのデータベースの 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 ステートメントを発行するアプリケーションは、多くの場合、システム テーブルの古い形式に依存します。 サイトは、システム テーブルから選択するアプリケーションを書き換えるまで、新しいバージョンの SQL Server にアップグレードできない場合があります。 SQL Server は、システム ストアド プロシージャ、DDL、および発行されたインターフェイス SQL-SMO 考慮し、これらのインターフェイスの下位互換性を維持するために機能します。
SQL Server では、システム テーブルで定義されているトリガーはサポートされていません。これは、システムの操作が変更される可能性があるためです。
注
システム データベースを UNC 共有ディレクトリに配置することはできません。
システム データベース データの表示
アプリケーションで必要な情報を取得する唯一の方法でない限り、システム テーブルに直接クエリを実行する Transact-SQL ステートメントをコーディングしないでください。 代わりに、アプリケーションは次を使用してカタログとシステムの情報を取得する必要があります。
システム カタログ ビュー
SQL-SMO
Windows Management Instrumentation (WMI) インターフェイス
ADO、OLE DB、ODBC など、アプリケーションで使用されるデータ API のカタログ関数、メソッド、属性、またはプロパティ。
Transact-SQL システム ストアドプロシージャーと組み込み関数
関連タスク
システム データベースのバックアップと復元 (SQL Server)
オブジェクト エクスプローラーのシステム オブジェクトの非表示