有没有人知道为什么SQL Azure不支持with nolock
SQL语句。微软是否有计划在未来支持这一点?
答案 0 :(得分:5)
我尝试在SQL azure上运行nolock查询,但它确实有效。这让我觉得该语句被忽略了,因为从技术上讲,你没有选项来设置数据库选项(READ_COMMITTED_SNAPSHOT和ALLOW_SNAPSHOT_ISOLATION)。我猜这是原因,但我会尝试做更多的挖掘。
注意:这是Azure限制。
您可以找到更多信息here:
READ_COMMITTED_SNAPSHOT和ALLOW_SNAPSHOT_ISOLATION数据库 SQL Azure数据库中的选项设置为ON。因为SET 在ALTER DATABASE中,Transact-SQL语句不是 支持,这些数据库选项无法更改。更多 有关基于行版本控制的隔离级别的信息,请参阅 了解基于行版本控制的隔离级别。
更新:与两位超级SQL专家进行快速讨论后,解决方案似乎是使用如下查询:
set transaction isolation level READ UNCOMMITTED
select * from myTestTable
因此,对于每个批次,您都需要指定隔离级别。