システム ベース テーブル
適用対象:SQL Server (サポートされているすべてのバージョン)
システム ベース テーブルは、特定のデータベースのメタデータを実際に格納する、基になるテーブルです。 Masterデータベースには、他のどのデータベースにも存在しない追加のテーブルが含まれているので、この点で特別なことです。 これらのテーブルには、サーバー全体のスコープを持つ永続化されたメタデータが含まれています。
重要
システムベーステーブルは SQL Server データベースエンジン内でのみ使用され、一般的なユーザーの使用には使用されません。 これらは変更される可能性があり、互換性は保証されていません。
システム ベース テーブルのメタデータ
データベースに対する CONTROL、ALTER、または VIEW DEFINITION 権限を持つ権限付与対象ユーザーは、システムベーステーブルのメタデータを使用して、システム のカタログビュー を表示できます。 権限付与対象ユーザーは、 OBJECT_NAME や OBJECT_IDなどの組み込み関数を使用して、システムベーステーブルの名前とオブジェクト id を解決することもできます。
システムベーステーブルにバインドするには、ユーザーが専用管理者接続 (DAC) を使用して SQL Server のインスタンスに接続する必要があります。 DAC で接続せずにシステム ベース テーブルから SELECT クエリを実行しようとすると、エラーが発生します。
重要
DAC を使用したシステムベーステーブルへのアクセスは、Microsoft の担当者向けに設計されており、サポートされているお客様のシナリオではありません。
システム ベース テーブル
次の表に、SQL Server の各システムベーステーブルの一覧とその説明を示します。
ベーステーブル | 説明 |
---|---|
sys.sysschobjs | すべてのデータベースに存在します。 各行は、データベース内のオブジェクトを表します。 |
sysbinobjs | すべてのデータベースに存在します。 データベース内の Service Broker エンティティごとに1行のデータを格納します。 Service Broker エンティティには次のものがあります。 メッセージの種類 サービス コントラクト サービス 名前および型では、固定されているバイナリ照合順序を使用します。 |
sys.sysclsobjs | すべてのデータベースに存在します。 次のような共通プロパティを共有する、分類されたエンティティごとに1行の情報を格納します。 アセンブリ バックアップ デバイス フルテキスト カタログ パーティション関数 パーティション構成 ファイル グループ 隠ぺいキー |
sys.sysnsobjs | すべてのデータベースに存在します。 名前空間スコープのエンティティごとに1行の値を格納します。 このテーブルは、XML コレクション エンティティの格納に使用されます。 |
sys.syscolpars | すべてのデータベースに存在します。 テーブル、ビュー、またはテーブル値関数内のすべての列に対応する行が含まれています。 また、プロシージャまたは関数のパラメーターごとの行も格納します。 |
sys.systypedsubobjs | すべてのデータベースに存在します。 型指定されたサブエンティティごとに 1 行のデータを格納します。 パーティション関数のパラメーターだけがこのカテゴリに分類されます。 |
sys.sysidxstats | すべてのデータベースに存在します。 テーブルおよびインデックス付きビューのインデックスまたは統計ごとに 1 行のデータを格納します。 注: すべてのインデックス (ヒープを除く) は、インデックスと同じ名前の統計に関連付けられています。 |
sysiscols | すべてのデータベースに存在します。 保持されるインデックスと統計の列ごとに1行のデータを格納します。 |
sysscalartypes | すべてのデータベースに存在します。 ユーザー定義型またはシステム型ごとに1行の値を格納します。 |
sys.sysdbreg | Masterデータベースのみに存在します。 登録されたデータベースごとに 1 行のデータを格納します。 |
sys.sysxsrvs | Masterデータベースのみに存在します。 ローカル サーバー、リンク サーバー、またはリモート サーバーごとに 1 行のデータを格納します。 |
sys.sysrmtlgns | このシステムベーステーブルは、 master データベースにのみ存在します。 リモートログインマッピングごとに1行の値を格納します。 対応するサーバーから送信されてきたと称する受信ログインを、実際のローカル ログインにマップするために使用します。 |
syslnklgns | Masterデータベースのみに存在します。 リンク ログイン マッピングごとに 1 行のデータを格納します。 リンクされたログインのマッピングは、リモートプロシージャコールおよびローカルサーバーから対応するリンクサーバーに送信される分散クエリによって使用されます。 |
sys. sysxlgns | Masterデータベースのみに存在します。 サーバープリンシパルごとに1行の値を格納します。 |
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> がデータベース ID ID <> で直接更新され、キャッシュの一貫性が維持されていない可能性があります。 SQL Server を再起動してください。
手動で更新されたシステム テーブルを使用してデータベースを開始する
メッセージ 3859: 警告: システム カタログは、データベース ID 17 で直接更新されましたが、最近date_time。
システム テーブルがDBCC_CHECKDB後にコマンドを実行する
メッセージ 3859: 警告: システム カタログは、データベース ID 17 で直接更新されましたが、最近date_time。
システム テーブルに対して手動で更新を実行し、問題が発生した場合は、バックアップから復元するか、影響を受けるデータベースから新しいデータベースにデータをコピーする必要があります。 ユーザー アクションのエラー メッセージの詳細を確認してください。