在SQL Server 2008(sp2)存储过程中,在启动事务之前,我创建了两个临时表。我在交易中插入它们。当事务循环通过相当大的数据集(约1,200次)时,存储过程无法完成。具体来说,跟踪显示
SELECT * FROM #tmpTable2
以下代码中的启动但未完成。当循环大约一半时,它可以正常工作。
IF [true] > 0 --error
BEGIN
SELECT * FROM #tmpTable1
SELECT * FROM #tmpTable2
DROP TABLE #tmpTable1
DROP TABLE #tmpTable2
rollback TRANSACTION
return -1
END
请注意,在跟踪中,transactionlog
事件越来越频繁地发生,因为它会失败。
有什么想法吗?谢谢!