1

我有一笔交易,类似于

BEGIN TRANSACTION

INSERT INTO Table2 WITH(TABLOCK)
   SELECT BLAH 
   FROM Table

COMMIT TRANSACTION

此交易最多可能需要一个小时才能完成。

我想运行一个查询,有点像:

SELECT COUNT(*) FROM Table2

定期在一个完全不同的线程上报告到目前为止已经插入了多少行。

这可能吗?有没有办法查询未提交的行数?

谢谢

4

1 回答 1

0

在查询中添加 WITH (NOLOCK) 提示。

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

在开始事务之前进行基线计数,然后从当前数字中减去该值以获得新插入的行数。

于 2012-10-09T18:49:32.937 回答