使用优化程序提示 NOLOCK 运行查询时收到 "错误 605" 错误消息,或者在 SQL Server 中将事务隔离级别设置为 "未提交"。


摘要


使用优化程序提示 NOLOCK 运行查询或将事务隔离级别设置为 "未提交" 时,可能会生成暂时性的605错误消息。

更多信息


通常,对由其他用户或进程更改的数据的访问被拒绝,因为对数据进行了锁定。 但是,NOLOCK 和 READ 未提交的命令使查询能够读取由其他用户锁定的数据。 这称为脏读,因为你可以读取尚未提交且可能会发生更改的值。当使用 NOLOCK 或读取未提交的查询尝试读取其他用户正在移动或更改的数据时,将发生605错误。 在读取已提交的数据时,在脏读操作期间出现的605错误的严重级别为12和严重级别21。 如果出现严重级别为12的605错误,则很可能是暂时的605错误,并且不会指示数据库一致性问题。 若要验证它是否为暂时性的605错误,请稍后重新运行该查询。如果错误仍然存在,请删除 NOLOCK 提示或将事务隔离级别设置为 "已提交",并验证605严重级别21是否未发生。 605级别21错误指示数据库可能已损坏。 如果出现605级别21错误,请参阅 SQL Server 联机丛书获取详细信息,联系您的主要支持提供商以获得更多帮助。