在 SQL Azure 中支持 nolock

Posted

技术标签:

【中文标题】在 SQL Azure 中支持 nolock【英文标题】:support for nolock in SQL Azure 【发布时间】:2011-07-28 04:09:38 【问题描述】:

有没有人知道为什么 SQL Azure 不支持with nolock SQL 语句。 Microsoft 是否有计划在未来支持此功能?

【问题讨论】:

【参考方案1】:

我尝试在 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 语句中不是 支持,这些数据库选项无法更改。更多 有关基于行版本控制的隔离级别的信息,请参阅 了解基于行版本控制的隔离级别。

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

set transaction isolation level READ UNCOMMITTED
select * from myTestTable

所以对于每个批次,都需要指定隔离级别。

【讨论】:

以上是关于在 SQL Azure 中支持 nolock的主要内容,如果未能解决你的问题,请参考以下文章

HSQLDB Junit 测试对 DB2 和 SQL Server NOLOCK 查询失败

在 Azure SQL DB 中处理错误“提供的数据源类型不支持外部表”?

为啥 Microsoft 不支持到 SQL Azure 的 OLE DB 连接?

Azure 支持SQL Server 2019备份和文件还原

Azure SQL DB 发布:目标平台不支持语句“CREATE SYMMETRIC KEY”

Azure SQL支持堆还是仍然需要聚集索引?