SQL Azure 中对 nolock 的支持

发布于 2024-11-27 02:33:20 字数 75 浏览 1 评论 0原文

有谁知道为什么 SQL Azure 不支持 with nolock SQL 语句。微软未来有支持这个的计划吗?

Does anyone have an idea as to why SQL Azure does not support with nolock SQL statements. Does Microsoft has any plans of supporting this in the future?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

撩心不撩汉 2024-12-04 02:33:20

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

注意:这是 Azure 限制。

您可以找到更多信息 此处

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

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

set transaction isolation level READ UNCOMMITTED
select * from myTestTable

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

I tried running a nolock query on SQL azure and it works. That got me thinking that the statement is ignored because technically you don't have the option to set the database option (READ_COMMITTED_SNAPSHOT and ALLOW_SNAPSHOT_ISOLATION). I'm guessing this is the reason but I'll try and do some more digging.

Note: this is an Azure limitation.

You can find more information here:

Both the READ_COMMITTED_SNAPSHOT and ALLOW_SNAPSHOT_ISOLATION database
options are set to ON in SQL Azure Database. Because SET
in the ALTER DATABASE Transact-SQL statement is not
supported, these database options cannot be changed. For more
information on row versioning-based isolation levels, see
Understanding Row Versioning-Based Isolation Levels.

Update: after a quick discussion with two über SQL experts, the solution appears to be to use a query like:

set transaction isolation level READ UNCOMMITTED
select * from myTestTable

So for every batch, you need to specify the isolation level.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文