1

私は次のような取引をしています。

BEGIN TRANSACTION

INSERT INTO Table2 WITH(TABLOCK)
   SELECT BLAH 
   FROM Table

COMMIT TRANSACTION

このトランザクションが完了するまでに最大 1 時間かかる場合があります。

次のようなクエリを実行したいと思います。

SELECT COUNT(*) FROM Table2

これまでに挿入された行数を報告できるまったく別のスレッドで定期的に。

これは可能ですか?コミットされていない行数を照会する方法はありますか?

ありがとう

4

1 に答える 1

0

クエリにWITH(NOLOCK)ヒントを追加します。

SELECT COUNT(*) FROM Table2 WITH (NOLOCK);

トランザクションを開始する前にベースラインカウントを取得し、現在の数からその値を引いて、新しく挿入された行の数を取得します。

于 2012-10-09T18:49:32.937 に答える