修复SQLSERVER 数据库一致性错误与分配错误
发布时间:2020-12-12 16:05:22 所属栏目:MsSql教程 来源:网络整理
导读:? 一、把数据库置为单用户模式: sp_dboption '数据库名称','single user','true' ? 二、在允许数据丢失情况下修复数据库: DBCC checkdb('数据库名称',REPAIR_ALLOW_DATA_LOSS) 如果执行一次不行,可以在多执行几次直到没有再提示数据库有错误为止。 三、把数
?一、把数据库置为单用户模式: sp_dboption '数据库名称','single user','true' ? 二、在允许数据丢失情况下修复数据库: DBCC checkdb('数据库名称',REPAIR_ALLOW_DATA_LOSS) 如果执行一次不行,可以在多执行几次直到没有再提示数据库有错误为止。 三、把数据库重新设置为多用户模式: 这样这个数据库的错误修复就完成了。然后停止掉SQLSERVER,重新启动服务器就可以。 这种方法对于一般出现问题可以不用安装企业管理器,直接在服务器用OSQL –E 进入数据库,然后通过上面两条命令来修复数据库。这样速度比较快! 其他人提供的方法: 一、DBCC CHECKDB : 在SQL查询分析器中执行以下SQL进行数据库的修复,修复数据库存在的一致性错误与分配错误。 use master declare @databasename varchar(255) set @databasename='需要修复的数据库名称' exec sp_dboption @databasename,N'single',N'true' dbcc checkdb(@databasename,REPAIR_REBUILD) 然后执行 DBCC CHECKDB('需要修复的数据库名称') 检查数据库是否仍旧存在错误。注意:修复后可能会造成部分数据的丢失。 2. DBCC CHECKTABLE? 如果DBCC CHECKDB 检查仍旧存在错误,可以使用DBCC CHECKTABLE来修复。? use 需要修复的数据库实体的名称? declare @dbname varchar(255)? set @dbname='需要修复的数据库实体的名称'? exec sp_dboption @dbname,'true'? dbcc checktable('需要修复的数据表的名称',REPAIR_ALLOW_DATA_LOSS)? dbcc checktable('需要修复的数据表的名称',REPAIR_REBUILD)? exec sp_dboption @dbname,'false'(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |