--前提是硬盘没问题.如果硬盘本来就有问题.次方法可能无效 --1.停止sql 服务,获取数据库路径,删掉日志文件 use master go select name,reverse(substring(reverse(filename),charindex('',reverse(filename)),1000)) from sysdatabases --2.启动sql 服务 use master go sp_configure 'allow update',1 reconfigure with override go update sysdatabases set status = 32768 where name = 'testdb' go --重建数据库日志文件 dbcc rebuild_log('hydee','F: estdbdata estdb_log.ldf') --最好在原路径上面吧.文件夹一点要原来就存在,不然会提示错误. go use master update sysdatabases set status = 8 where name = 'testdb' Go sp_configure'allow updates',0 reconfigure with override Go --这个时候.数据库应该已经不是置疑的.并且可以使用了.只是有部分损坏 --3.修复数据库 use master declare @databasename varchar(255) set @databasename='testdb' exec sp_dboption @databasename, N'single', N'true' dbcc checkdb(@databasename,REPAIR_REBUILD) dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS) exec sp_dboption @databasename, N'single', N'false' --最后修复完.再dbcc checkdb一次呗,暂时还没试过不行的. --这样可以省去重新改传输序号.而且有些店还没有备份的. ------------------------------------------------------------- --exec p_dboptimize 重建索引 exec sp_dboption 'testdb','single user',true --设置单用户模式 --dbcc checktable ('usertable',repair_allow_data_loss) --修复表允许丢失,谨慎使用 dbcc checktable ('usertable',REPAIR_REBUILD) --修复表 dbcc dbreindex(u_ware_ext) --重建所有索引 exec sp_dboption 'testdb','single user',false --关闭单用户 dbcc checkdb --检查修复数据库