问题描述:在操作软件时提示:“由于数据移动,无法继续以NOLOCK方式扫描”解决方案:SQL数据库存在错误需要修复,在确认没有任何用户连接账套的情况下,进行数据库修复,修复模式为有损修复,修复前一定要备份数据库以下为修复语句(高版本数据可能没有sp_dboption这个存储过程):通过以下语句查询出错的数据表DECLARE @table_name sysnameDECLARE ROY_table CURSOR FORSELECT name FROM sysobjects where xtype in ('u','s')OPEN ROY_tableFETCH NEXT FROM ROY_table INTO @table_nameWHILE @@FETCH_STATUS = 0 BEGINDBCC CheckTable (@table_name)PRINT '--数据表'+@table_name + '的检查整理完成'FETCH NEXT FROM ROY_table INTO @table_nameENDCLOSE ROY_tableDEALLOCATE ROY_table修复数据表use 需要修复的数据库实体的名称 declare @dbname varchar(255) set @dbname=’需要修复的数据库实体的名称’ exec sp_dboption @dbname,’single user’,'true’ dbcc checktable(’需要修复的数据表的名称’,REPAIR_ALLOW_DATA_LOSS) dbcc checktable(’需要修复的数据表的名称’,REPAIR_REBUILD) exec sp_dboption @dbname,’single user’,'false’ 。