数据库损坏一般会使用一下语句修复:
==================================================
--修复数据库的某个表
--用下面的语句进行修复
exec sp_dboption 'DatabaseName', 'single user', 'true'
Go
DBCC CHECKTABLE('TableName',repair_allow_data_loss)
go
sp_dboption 'DatabaseName', 'single user', 'false'
Go
-------------------------------------------------
--修复整个数据库
--用下面的语句进行修复,将DatabaseName改成修复的数据库名
ALTER DATABASE [DatabaseName] SET SINGLE_USER
GO
DBCC CHECKDB('DatabaseName',repair_allow_data_loss) WITH TABLOCK
GO
ALTER DATABASE [DatabaseName] SET MULTI_USER
GO
但上面的方法也不一定都管用,上面的语句有时候执行都不能执行成功,这样需要尝试其他方法,比如,将数据导入到一个新建的空白数据库中。
在这个导数据的过程中就会发现哪个表导不过去,哪个表有问题,可以暂时将这些表取消导入,将能顺利导入的导进去。
剩下有问题的表一般在查询分析器中用语句是打不开的,那怎么办呢,可以试试先导出到excel表格中,有些时候导入到sql的表中不行,但导入到excel可以,虽然导出的时候也会有错误提示,提示导出失败,但有时打开excel表后发现数据是在里面的,这样就可以从excel表再导入到那个新数据库中。
如果导出excel也不行怎么办,那就看能不能在企业管理器中打开这个表,能打开的话全选,复制粘贴到excel中,打不开就没办法了。