システム ベース テーブル

適用対象: はいSQL Server (サポートされているすべてのバージョン)

システム ベース テーブルは、特定のデータベースのメタデータを実際に格納する、基になるテーブルです。 マスター データベース には、他のデータベースに見つからない追加のテーブルがいくつか含まれているため、この点で特別です。 これらのテーブルには、サーバー全体のスコープを持つ永続化されたメタデータが含まれています。

重要

システム ベース テーブルは、SQL Server データベース エンジン内のみで使用されるテーブルであり、一般ユーザーが使用するテーブルではありません。 これらは変更される可能性があります。互換性は保証されません。

システム ベース テーブルのメタデータ

データベースに対する CONTROL、ALTER、または VIEW DEFINITION 権限を持つ権限付与対象ユーザーは 、sys.objects カタログ ビューにシステム ベース テーブルのメタデータを表示できます。 権限付与対象ユーザーは、 や などの組み込み関数を使用して、システム ベース テーブルの名前とオブジェクトのOBJECT_NAME解決OBJECT_ID。

システム ベース テーブルにバインドするには、専用管理者接続 (DAC) を使用して、 のインスタンスに SQL Server 接続する必要があります。 DAC で接続せずにシステム ベース テーブルから SELECT クエリを実行しようとすると、エラーが発生します。

重要

DAC を使用したシステム ベース テーブルへのアクセスは、担当者専用に設計され、サポート Microsoft されている顧客シナリオではありません。

システム ベース テーブル

次の表に、SQL Server のシステム ベース テーブルの一覧とその説明を示します。

ベース テーブル [説明]
sys.sysschobjs すべてのデータベースに存在します。 各行は、データベース内のオブジェクトを表します。
sys.sysbinobjs すべてのデータベースに存在します。 データベース内のエンティティのService Broker行を格納します。 Service Brokerエンティティには、次のものが含まれます。

メッセージの種類

サービス コントラクト

サービス

名前と型では、固定されたバイナリ照合順序が使用されます。
sys.sysclsobjs すべてのデータベースに存在します。 次を含む同じ共通プロパティを共有する、分類された各エンティティの行が含まれます。

アセンブリ

バックアップ デバイス

フルテキスト カタログ

パーティション関数

パーティション構成

ファイル グループ

隠ぺいキー
sys.sysnsobjs すべてのデータベースに存在します。 名前空間スコープの各エンティティの行を格納します。 このテーブルは、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 データベースにのみ存在します。 各リモート ログイン マッピングの行を格納します。 対応するサーバーから送信されてきたと称する受信ログインを、実際のローカル ログインにマップするために使用します。
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 すべてのデータベースに存在します。 オブジェクトに関連付けられた対称キー、暗号化、または暗号化プロパティごとに 1 行のデータを格納します。
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格納します。
sys.sysdesend すべてのデータベースに存在します。 Service Broker メッセージ交換の送信エンドポイントごとに 1 行のデータを格納します。
sys.sysdercv すべてのデータベースに存在します。 メッセージメッセージの受信エンドポイントごとに 1 行Service Brokerします。
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 への一般的な参照ごとに 1 行のデータを格納します。
sys.sysobjvalues すべてのデータベースに存在します。 エンティティの全般的な値プロパティごとに 1 行のデータを格納します。
sys.sysguidrefs すべてのデータベースに存在します。 GUID で分類された ID 参照ごとに 1 行のデータを格納します。

システム ベース テーブルの更新

システム テーブル内のデータは、システム カタログ ビューを使用して表示できます。 システム ベース テーブルのメタデータを更新するには、適切な TSQL インターフェイス (DDL ステートメントなど) を使用します。 システム テーブルを手動で更新することはできません。 SQL Serverテーブルに直接更新を実行すると、次のメッセージが報告されます。

システム テーブルが手動で更新される

メッセージ 17659: 警告: システム テーブル <id> がデータベース <id> で直接更新されました。キャッシュの一貫性が維持されていない可能性があります。 SQL Server を再起動してください。

手動で更新されたシステム テーブルを使用してデータベースを開始する

メッセージ 3859: 警告: システム カタログは、データベース ID 17 で直接更新されました。最新の更新date_time。

システム テーブルがDBCC_CHECKDB後にコマンドを実行する

メッセージ 3859: 警告: システム カタログは、データベース ID 17 で直接更新されました。最新の更新date_time。

システム テーブルに対して手動で更新を実行し、問題が発生した場合は、バックアップから復元するか、影響を受けるデータベースから新しいデータベースにデータをコピーする必要があります。 ユーザー アクションのエラー メッセージの詳細については、を参照してください