8

SQL Server 2008 を介して共有ホストでデータベースを実行しています。現在、パフォーマンスの制約により、データベースと Web サイトを移動する必要があります。クライアントが同期フレームワークを使用して同期できるように、データベースで変更追跡を使用します。

私の質問は次のとおりです。変更追跡テーブルは、再配置されたときにその場所に残ることを意味する方法でデータベース内に保存されていますか?

私は現在、SQL Server を学習している最中ですが、変更追跡のより細かい点は、まだ私をほのめかしています。概念的には、変更追跡テーブルが「どこ」にあるのかよくわかりません。

4

3 に答える 3

4

コミット テーブルは、名前が付けられた非表示の内部テーブルでsys.syscommittab、管理者のみが直接アクセスでき、変更追跡に参加するテーブルへの変更ごとにトランザクションごとに 1 つの行を格納します。

関連データは、ユーザー テーブルで変更追跡が有効になっているときに作成される個別のシステム テーブルに格納されます。

テーブル レベルで変更追跡を有効にして作成された内部テーブルの名前はsys.change_tracking_[object id] です。ここで、[object id] はターゲット テーブルの objectID です。

于 2010-02-11T10:58:11.240 に答える
2

私は一般的にリンクを提供するのが好きではないので、これを回答として投稿するかどうかを検討しましたが、この場合、いくつかのポイントを要約したかったので、コメントとしてはうまくいきません!

この記事は、変更の追跡と (および変更データのキャプチャ) がどのように機能するかについて詳しく説明しているため、一読の価値があります。

変更追跡の場合、次を使用して、変更を追跡するために使用されている内部テーブルを見つけることができます。

SELECT [name] FROM sys.internal_tables
  WHERE [internal_type_desc] = 'CHANGE_TRACKING';

重要な引用は次のとおりです。

テーブルは内部テーブルと呼ばれるものであり、その名前や格納場所を制御することはできません。

于 2010-02-11T11:16:30.323 に答える
1

ここから、変更追跡は、テーブルと同じデータベース カタログ内の汎用テーブルのように見えます。したがって、データベースを移動する場合は、変更テーブルを使用する必要があります。

最初にデータベースのスキーマを調査し、MSDN ページを使用します。

于 2010-02-11T11:00:15.357 に答える