关于原子批次的文件说:
例如,没有批次隔离。客户端能够从批处理中读取第一个更新的行,而其他行仍在服务器上更新。
但是,当我作为批处理的一部分更新两个不同表中的列时,会出现写 - 写冲突情况吗?
参考:https://en.wikipedia.org/wiki/Write%E2%80%93write_conflict
例如:
批处理1:Table1.column = x,Table2.column = x
批次2:Table1.column = y,Table2.column = y
结果(写 - 写冲突情况):Table1.column = x,Table2.column = y
答案 0 :(得分:0)
您引用的引用回答了您的问题:
例如,没有批次隔离。客户端能够从批处理中读取第一个更新的行,而其他行仍在服务器上更新。
但是,一旦完全应用批次,将以正常的时间戳分辨率为准。值为X的两个单元格都有一个时间戳。具有值Y的两个单元格将具有另一个时间戳。获胜者将是X或Y,但获胜者将是相同的,因为时间戳将是相同的:
BATCH语句将多个数据修改语言(DML)语句(INSERT,UPDATE,DELETE)组合到一个逻辑操作中,并为批处理中的语句写入的所有列设置客户端提供的时间戳
在这种情况下,您是否看到X / Y或Y / X答案取决于读数的一致性级别以及批次完全应用所需的时间。