读取从另一个正在进行的事务中插入的行数

时间:2012-10-09 18:45:44

标签: sql sql-server sql-server-2012

我有一个符合

的交易
BEGIN TRANSACTION

INSERT INTO Table2 WITH(TABLOCK)
   SELECT BLAH 
   FROM Table

COMMIT TRANSACTION

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

我想运行一个类似的查询:

SELECT COUNT(*) FROM Table2

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

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

感谢

1 个答案:

答案 0 :(得分:0)

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

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

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