日期:2014-05-18  浏览次数:20537 次

附加数据库后,一个表不见了
由于数据库错误分离了数据库,然后普通附加不成功,使用了如下方法:
EXEC   sp_detach_db   @dbname= 'zghzp '      
EXEC   sp_attach_single_file_db   @dbname= 'zghzp ',          
@physname= 'D:\Program   Files\Data\zghzp.mdf '

数据库附加成功!
1、打开企业管理器,查看数据库,失去一个表.
2、打开查询分析器在左边的树行图中可以看到丢失的表,但是查看该表!可是使用sql查询语句:

      select   *   from   cc_info_agency       出来如下错误。

------------------
服务器:   消息   644,级别   21,状态   3,行   1
未能在索引页   (1:21180)   中找到   RID   '16d0b0e870100 '   的索引条目(索引   ID   0,数据库   'zghzp ')。

连接中断
--------

3、使用   dbcc   checkdb   ( 'zghzp ')   ,   出来如下错误。

-----------------
服务器:   消息   602,级别   21,状态   16,行   1
未能在   sysindexes   中找到数据库   ID   7   中对象   ID   1718297181   的索引   ID   -1   对应的行。请对   sysindexes   运行   DBCC   CHECKTABLE。

连接中断

----------------

      各位我该怎么办呀   我这个表很重要!

------解决方案--------------------
DBCC DBREINDEX (表名, ' ', 70)--重建表的索引


------解决方案--------------------
try:
use master
go
sp_dboption 'dbname ', 'single user ', 'true '
go
dbcc checkdb( 'dbname ', repair_rebuild)
go
use dbname
go
exec sp_msforeachtable 'dbcc checktable( ' '? ' ',repair_rebuild) '
go
sp_dboption 'dbname ', 'single user ', 'false '
go