在 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备份和文件还原