[英]To Get get all user tables row count when performing insert transaction
听起来您想要获得的是插入操作的运行进度。 这个对吗?
如果是这样,则问题是SQL Server进行了批量提交,因此您无法在提交完成之前访问它。 一种解决方法是将插入事务分成较小的批次,然后可以查询它们。 请记住,这是未经测试的伪代码,但是我过去使用WHILE LOOP做过类似的事情。
首先收集您的第一批记录以提交:
SELECT * FROM table // get your 100,000 records
INTO #holdingTable
然后根据说1,000的块创建一个while循环
DECLARE @totalCount int = 100000, @myCount int = 1000
WHILE (@myCount <= @totalCount)
BEGIN
SELECT top 1000 Id from #holdingTable
INTO #tempHolding
INSERT #tempHolding INTO myTable
DELETE #tempHolding FROM #holdingTable
SET @myCount = @myCount + 1000
END
这个想法是将100,000条记录以1,000条为循环,插入它们,然后从临时表中删除插入的记录,以便您可以选择下一个1,000条。 类似于分页。 关键是随时删除它们,这样就不会多次插入相同的记录。
这不是最终的解决方案,但我希望这可以帮助您朝正确的方向发展。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.