.net コードの一部が実行されたときに触れられているテーブルを見つけたいです。どうやってやるの?1 つのトランザクションでかなりの数のテーブルが書き込まれる可能性があり、影響を受けるすべてのテーブルのある種のリストを取得すると役立ちます。
2 に答える
3
Sql Server には、Profiler というツールがあります (Express バージョンではありません)。Management Studio の [ツール] メニューに移動すると、"Sql Profiler" が表示されます。別のアプリケーションとして実行されます。
監視すると、監視するデータベース サーバーへの接続が提供されます。監視できるものはすべてありますが、ほとんどの場合、データベースをフィルタリングしてクエリを表示するだけで済みます。
- イベントセレクションへ
- 「すべての列を表示」にチェックを入れる
- 「列フィルター」を開く
- フィルタ リストにデータベース名を入力し、他に興味のあるものを入力します (ほとんどの場合、既定値で問題ありません)。
ここで、[実行] をクリックすると、トレースが実行されます。一時停止し、何が起こっているかを確認したい行までコードを実行してから、一時停止を解除します。実行されるすべてのクエリが表示されます (コードだけでなく、db に対して実行されるものすべて)。
使用しているSQLサーバーのバージョンを指定しませんでしたが、プロファイラーはv2000以降にあり、わずかな違いがあるかもしれません.
于 2013-10-22T15:23:07.947 に答える
1
Entity Framework を使用している場合は、DbContext の ChangeTracker プロパティを確認できます。
public class MyDbContext : DbContext
{
// DbSet<...> stuff excluded in this sample
public override SaveChanges()
{
var changes = ChangeTracker.Entries;
// changes now contains every piece that has been touched in this DbContext before saving
}
}
于 2013-10-22T15:25:18.347 に答える