在Sybase中,嵌套选择的更新是否可以被视为原子?

时间:2015-05-21 07:58:42

标签: sql sybase atomicity

我正在尝试这样的事情:

set rowcount 10 //fetch only 10 row
Update tableX set x=@BatchId where id in (select id from tableX where x=0)

通过提供batchId基本上标记了10条记录。 所以我的问题是如果这个proc是并行执行的,那么我可以保证select的更新是原子的,没有调用会从tableX中选择类似的setof记录进行预订吗?

由于

1 个答案:

答案 0 :(得分:1)

为了保证不会发生这样的重叠,你应该: (i)在声明中加入BEGIN TRANSACTION - COMMIT (ii)将HOLDLOCK关键字直接放在'tableX'后面(或在隔离级别3运行整个语句)。