システム データベース

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

SQL Server には、次のシステム データベースが用意されています。

システム データベース 説明
master データベース SQL Server のインスタンスのシステムレベルの情報をすべて記録します。
msdb データベース 警告やジョブのスケジュールを設定するために SQL Server エージェントにより使用されます。
model データベース SQL Server のインスタンスで作成されたすべてのデータベースのテンプレートとして使用されます。 データベース サイズ、照合順序、復旧モデル、およびその他のデータベース オプションなどの model データベースに変更を加えると、その変更内容は、それ以降に作成されるすべてのデータベースに適用されます。
Resource データベース SQL Server に装備されているシステム オブジェクトを格納する読み取り専用のデータベースです。 システム オブジェクトは、物理的には Resource データベースに保存されていますが、すべてのデータベースの sys スキーマに論理的に表示されます。
tempdb データベース 一時オブジェクトや生成途中の結果セットを保存するためのワークスペースです。

重要

Azure SQL Database 単一データベースおよびエラスティック プールでは、master データベースと tempdb データベースのみが適用されます。 詳しくは、「Azure SQL Database サーバーとは」をご覧ください。 Azure SQL Database のコンテキストでの tempdb の詳細については、「SQL Database の Tempdb データベース」を参照してください。 Azure SQL Managed Instance の場合、すべてのシステム データベースが適用されます。 Azure SQL Database の Managed Instance について詳しくは、「マネージド インスタンスとは?」をご覧ください。

システム データの変更

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 システム ストアド プロシージャと組み込み関数。