sql server错误601怎么产生的?

pippohw 2007-07-03 10:14:59
我以为Nolock是为了不产生死锁,但是使用如下,却产生了锁异常
select * from A with(nolock),b ,c
where A.contentId = b.contentId and b.name = c.name(示意语句)

这样的查询语句会有问题吗?但是在使用的时候遇到了锁异常,但是很难重现,现在查询sql server帮助文档如下,但是不明白其中的解释,希望各位指点迷津,为什么会产生这样的异常?

错误 601
严重级别 12
消息正文
由于数据移动,未能继续以 NOLOCK 方式扫描。

解释
当使用 NOLOCK 锁定提示或设置为 READ UNCOMMITTED 的事务隔离级别扫描时,可能会删除扫描当前位置处的页。当这种情况发生时,Microsoft® SQL Server™ 将无法继续扫描。

对策
该错误终止查询。重新提交查询或删除 NOLOCK 锁定提示。
...全文
958 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
master_leo 2007-07-05
  • 打赏
  • 举报
回复
错误 601
严重级别 12
消息正文
由于数据移动,未能继续以 NOLOCK 方式扫描。

解释
当使用 NOLOCK 锁定提示或设置为 READ UNCOMMITTED 的事务隔离级别扫描时,可能会删除扫描当前位置处的页。当这种情况发生时,Microsoft® SQL Server™ 将无法继续扫描。

对策
该错误终止查询。重新提交查询或删除 NOLOCK 锁定提示。

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧