问题描述:在操作软件时提示:“由于数据移动,无法继续以NOLOCK方式扫描”。解决方案:SQL数据库存在错误需要修复,在确认没有任何用户连接账套的情况下,进行数据库修复,修复模式为有损修复,修复前一定要备份数据库。以下为修复语句(高版本数据可能没有sp_dboption这个存储过程):通过以下语句查询出错的数据表DECLARE@table_namesysnameDECLAREROY_tableCURSORFORSELECTnameFROMsysobjectswherextypein('u','s')OPENROY_tableFETCHNEXTFROMROY_tableINTO@table_nameWHILE@@FETCH_STATUS=0BEGINDBCCCheckTable(@table_name)PRINT'--数据表'+@table_name+'的检查整理完成'FETCHNEXTFROMROY_tableINTO@table_nameENDCLOSEROY_tableDEALLOCATEROY_table修复数据表use需要修复的数据库实体的名称declare@dbnamevarchar(255)set@dbname=’需要修复的数据库实体的名称’execsp_dboption@dbname,’singleuser’,'true’dbccchecktable(’需要修复的数据表的名称’,REPAIR_ALLOW_DATA_LOSS)dbccchecktable(’需要修复的数据表的名称’,REPAIR_REBUILD)execsp_dboption@dbname,’singleuser’,'false’