システム ベース テーブル
適用対象: SQL Server Azure SQL Managed Instance
システム ベース テーブルは、特定のデータベースのメタデータを実際に格納する、基になるテーブルです。 master データベースには、他のどのデータベースにも見つからない追加のテーブルがいくつか含まれているため、この点で特別です。 これらのテーブルには、サーバー全体のスコープを持つ永続化されたメタデータが含まれています。
重要
システム ベース テーブルは、SQL Server データベース エンジン内でのみ使用され、一般的な顧客向けではありません。 これらは変更される可能性があり、互換性は保証されません。
システム ベース テーブルのメタデータ
データベースに対する CONTROL、ALTER、または VIEW DEFINITION 権限を持つ権限付与対象ユーザーは、 sys.objects カタログ ビューでシステム ベース テーブルのメタデータを表示できます。 権限付与対象ユーザーは、 OBJECT_NAME や OBJECT_IDなどの組み込み関数を使用して、システム 基本テーブルの名前とオブジェクト ID を解決することもできます。
システム ベース テーブルにバインドするには、ユーザーは専用管理者接続 (DAC) を使用して SQL Server のインスタンスに接続する必要があります。 DAC で接続せずにシステム ベース テーブルから SELECT クエリを実行しようとすると、エラーが発生します。
重要
DAC を使用したシステム ベース テーブルへのアクセスは、Microsoft の担当者専用に設計されており、サポートされている顧客シナリオではありません。
システム ベース テーブル
次の表に、SQL Server の各システム ベース テーブルの一覧と説明を示します。
ベース テーブル | 説明 |
---|---|
sys.sysschobjs | すべてのデータベースに存在します。 各行は、データベース内のオブジェクトを表します。 |
sys.sysbinobjs | すべてのデータベースに存在します。 データベース内の各 Service Broker エンティティの行を格納します。 Service Broker エンティティには、次のものが含まれます。 メッセージの種類 サービス コントラクト サービス 名前と型は、固定されたバイナリ照合順序を使用します。 |
sys.sysclsobjs | すべてのデータベースに存在します。 次のような同じ共通プロパティを共有する、分類された各エンティティの行が含まれます。 アセンブリ バックアップ デバイス フルテキスト カタログ パーティション関数 [パーティション構成] ファイル グループ 難読化キー [スキーマ] |
sys.sysnsobjs | すべてのデータベースに存在します。 名前空間スコープエンティティごとに 1 行が含まれます。 このテーブルは、XML コレクション エンティティの格納に使用されます。 |
sys.syscolpars | すべてのデータベースに存在します。 テーブル、ビュー、またはテーブル値関数のすべての列の行を格納します。 また、プロシージャまたは関数のパラメーターごとの行も格納します。 |
sys.systypedsubobjs | すべてのデータベースに存在します。 型指定されたサブエンティティごとに 1 行のデータを格納します。 パーティション関数のパラメーターのみがこのカテゴリに分類されます。 |
sys.sysidxstats | すべてのデータベースに存在します。 テーブルおよびインデックス付きビューのインデックスまたは統計ごとに 1 行のデータを格納します。 注: すべてのインデックス (ヒープを除く) は、インデックスと同じ名前の統計に関連付けられます。 |
sys.sysiscols | すべてのデータベースに存在します。 永続化されたインデックス列と統計列ごとに 1 行が含まれます。 |
sys.sysscalartypes | すべてのデータベースに存在します。 ユーザー定義型またはシステム型ごとに 1 行を格納します。 |
sys.sysdbreg | master データベースにのみ存在します。 登録されたデータベースごとに 1 行のデータを格納します。 |
sys.sysxsrvs | master データベースにのみ存在します。 ローカル サーバー、リンク サーバー、またはリモート サーバーごとに 1 行のデータを格納します。 |
sys.sysrmtlgns | このシステム ベース テーブルは、 master データベースにのみ存在します。 リモート ログイン マッピングごとに 1 行が含まれます。 対応するサーバーから送信されてきたと称する受信ログインを、実際のローカル ログインにマップするために使用します。 |
sys.syslnklgns | master データベースにのみ存在します。 リンク ログイン マッピングごとに 1 行のデータを格納します。 リンク ログイン マッピングは、ローカル サーバーから対応するリンク サーバーに出力されるリモート プロシージャ コールと分散クエリによって使用されます。 |
sys.sysxlgns | master データベースにのみ存在します。 各サーバー プリンシパルの行が含まれています。 |
sys.sysdbfiles | すべてのデータベースに存在します。 列 dbid が 0 の場合、行はこのデータベースに属するファイルを表します。 master データベースでは、列 dbid は 0 以外にすることができます。 その場合、該当する行は master ファイルを表します。 |
sys.sysusermsg | master データベースにのみ存在します。 各行は、ユーザー定義のエラー メッセージを表します。 |
sys.sysprivs | すべてのデータベースに存在します。 データベース レベルまたはサーバー レベルの権限ごとに 1 行のデータを格納します。 注: サーバー レベルのアクセス許可は、 master データベースに格納されます。 |
sys.sysowners | すべてのデータベースに存在します。 各行はデータベース プリンシパルを表します。 |
sys.sysobjkeycrypts | すべてのデータベースに存在します。 オブジェクトに関連付けられている各対称キー、暗号化、または暗号化プロパティの行を格納します。 |
sys.syscerts | すべてのデータベースに存在します。 データベース内の証明書ごとに 1 行のデータを格納します。 |
sys.sysasymkeys | すべてのデータベースに存在します。 各行は非対称キーを表します。 |
sys.ftinds | すべてのデータベースに存在します。 データベース内のフルテキスト インデックスごとに 1 行のデータを格納します。 |
sys.sysxprops | すべてのデータベースに存在します。 拡張プロパティごとに 1 行のデータを格納します。 |
sys.sysallocunits | すべてのデータベースに存在します。 各ストレージ割り当てユニットの行が含まれます。 |
sys.sysrowsets | すべてのデータベースに存在します。 インデックスまたはヒープの各パーティション行セットの行を格納します。 |
sys.sysrowsetrefs | すべてのデータベースに存在します。 行セットへの参照に対する各インデックスの行を格納します。 |
sys.syslogshippers | master データベースにのみ存在します。 データベース ミラーリング監視サーバーごとに 1 行のデータを格納します。 |
sys.sysremsvcbinds | すべてのデータベースに存在します。 各リモート サービス バインドの行が含まれています。 |
sys.sysconvgroup | すべてのデータベースに存在します。 Service Broker の各サービス インスタンスの行を格納します。 |
sys.sysxmitqueue | すべてのデータベースに存在します。 Service Broker 伝送キューごとに 1 行が含まれます。 |
sys.sysdesend | すべてのデータベースに存在します。 Service Broker メッセージ交換の送信エンドポイントごとに 1 行のデータを格納します。 |
sys.sysdercv | すべてのデータベースに存在します。 Service Broker 会話の受信エンドポイントごとに 1 行が含まれます。 |
sys.sysendpts | master データベースにのみ存在します。 サーバー内で作成されたエンドポイントごとに 1 行のデータを格納します。 |
sys.syswebmethods | master データベースにのみ存在します。 サーバーで作成される SOAP 対応 HTTP エンドポイントで定義されている SOAP メソッドごとに 1 行が含まれます。 |
sys.sysqnames | すべてのデータベースに存在します。 各名前空間または修飾名の行を 4 バイト ID トークンに格納します。 |
sys.sysxmlcomponent | すべてのデータベースに存在します。 各行は、XML スキーマ コンポーネントを表します。 |
sys.sysxmlfacet | すべてのデータベースに存在します。 XML 型定義の各 XML ファセット (制限) の行が含まれます。 |
sys.sysxmlplacement | すべてのデータベースに存在します。 XML コンポーネントの XML 配置ごとに 1 行のデータを格納します。 |
sys.syssingleobjrefs | すべてのデータベースに存在します。 一般的な N 対 1 参照ごとに 1 行のデータを格納します。 |
sys.sysmultiobjrefs | すべてのデータベースに存在します。 各一般的な N から N への参照の行が含まれます。 |
sys.sysobjvalues | すべてのデータベースに存在します。 エンティティの一般的な値の各プロパティの行を格納します。 |
sys.sysguidrefs | すべてのデータベースに存在します。 GUID で分類された ID 参照ごとに 1 行のデータを格納します。 |
システム ベース テーブルの更新
システム テーブル内のデータは、システム カタログ ビューを使用して表示できます。 システム ベース テーブルのメタデータを更新するには、適切な Transact-SQL インターフェイス (DDL ステートメントなど) を使用します。 システム テーブルを手動で更新することはできません。 SQL Server では、システム テーブルに対して直接更新を実行すると、次のメッセージが報告されます。
システム テーブルが手動で更新される
メッセージ 17659: 警告: システム テーブル ID <id> がデータベース ID <id> で直接更新され、キャッシュの一貫性が維持されていない可能性があります。 SQL Server を再起動してください。
手動で更新されたシステム テーブルを使用してデータベースを開始する
メッセージ 3859: 警告: システム カタログは、データベース ID 17 (最近では date_time) で直接更新されました。
システム テーブルが手動で更新された後の DBCC_CHECKDB コマンドの実行
メッセージ 3859: 警告: システム カタログは、データベース ID 17 (最近では date_time) で直接更新されました。
システム テーブルに対して手動で更新を実行し、問題が発生した場合は、バックアップから復元するか、影響を受けるデータベースから新しいデータベースにデータをコピーするように求められる場合があります。 ユーザー アクションのエラー メッセージ 詳細についてはを参照してください。