Azure SQL查询如何返回数据库条目的旧值和新值?



我遇到了以前从未遇到过的情况。

在Microsoft Azure SQL中对一个数据集运行两个不同的查询,一个返回更新前的旧值作为记录,另一个返回更新后的新值。

我试过强迫两个查询运行没有索引,它仍然是相同的结果。

这是怎么发生的,我应该从哪里开始寻找解决这个问题?

默认情况下Azure SQL数据库使用READ COMMITTED SNAPSHOT隔离。因此,如果您在事务中更新一行,那么事务的会话和任何使用脏读的会话将看到更新但未提交的值,而任何使用READ COMMITTED或SNAPSHOT隔离级别的其他会话将看到该行的事务前版本。

最新更新