我可以限制阻止我的SQL游标中的各个循环

时间:2009-08-26 10:03:14

标签: sql-server-2005 cursor blocking

我在一个较大的数据库上做了一些工作,基本上需要为表中的每个值调用一个带有不同参数的存储过程(大约20k条目)。我希望在没有阻塞该表或其他表所涉及的其他表的情况下执行此操作,直到整个进程运行所花费的时间。是否可以从SQL中将事务限制为光标上的各个循环?

我会非常简单地手动检查表格是否有变化,我在流程完成后循环并再次为新条目运行它,所以我不关心跟踪对它的更改

2 个答案:

答案 0 :(得分:0)

您可以将transaction isolation level设置为未提交的读取。 但要确保这是你真正想要的,因为你可以得到脏读,丢失更新,幻像更新等等。

答案 1 :(得分:0)

我建议循环播放20000条记录是一个糟糕的选择。最好用基于集合的解决方案替换存储过程。你应该避免使用游标。