在SQL Azure中支持nolock

cod*_*man 1 nolock azure azure-sql-database

有没有人知道为什么SQL Azure不支持with nolockSQL语句.微软是否有计划在未来支持这一点?

Anž*_*nik 5

我尝试在SQL azure上运行nolock查询,但它确实有效.这让我觉得该语句被忽略了,因为从技术上讲,你没有选项来设置数据库选项(READ_COMMITTED_SNAPSHOT和ALLOW_SNAPSHOT_ISOLATION).我猜这是原因,但我会尝试做更多的挖掘.

注意:这是Azure限制.

您可以在此处找到更多信息:

在SQL Azure数据库中,READ_COMMITTED_SNAPSHOT和ALLOW_SNAPSHOT_ISOLATION数据库选项都设置为ON.由于不支持ALTER DATABASE Transact-SQL语句中的SET,因此无法更改这些数据库选项.有关基于行版本控制的隔离级别的详细信息,请参阅了解基于行版本控制的隔离级别.

更新:在与两位超级SQL专家进行快速讨论后,解决方案似乎是使用如下查询:

set transaction isolation level READ UNCOMMITTED
select * from myTestTable
Run Code Online (Sandbox Code Playgroud)

因此,对于每个批次,您都需要指定隔离级别.