数据库突然断电后遇到的一个问题! 我们的数据库服务器突然断电, 重启后发现一个表里的数据有问题: 表

索引坏了:

DBCC DBREINDEX 重建指定数据库中表的一个或多个索引
DBCC DBREPAIR 除去损坏的数据库
DBCC INDEXDEFRAG 整理指定的表或视图的聚集索引和辅助索引碎片
DBCC SHRINKDATABASE 收缩指定数据库中的数据文件大小
DBCC SHRINKFILE 收缩相关数据库的指定数据文件或日志文件大小
DBCC UPDATEUSAGE 报告和更正 sysindexes 表的不正确内容,
该内容可能会导致通过 sp_spaceused
系统存储过程产生不正确的空间使用报表
---------------------------------------------------------------

A. 重建某个索引
下例使用填充因子 80 重建 pubs 数据库中 authors 表上的 au_nmind 聚集索引。

DBCC DBREINDEX ('pubs.dbo.authors', UPKCL_auidind, 80)

B. 重建所有索引
下例使用填充因子值 70 重建 authors 表上的所有索引。

DBCC DBREINDEX (authors, '', 70)

示例
DBCC INDEXDEFRAG (Northwind, Orders, CustomersOrders)
GO

A. 通过为当前数据库指定 0 更新 sysindexes
下例为数据库名称指定 0,而 Microsoft® SQL Server™ 报告有关当前数据库的信息。

DBCC UPDATEUSAGE (0)
GO

B. 为 pubs 更新 sysindexes,禁止显示信息性消息
下例将 pubs 指定为数据库名称,并禁止显示所有信息性消息。

DBCC UPDATEUSAGE ('pubs') WITH NO_INFOMSGS
GO

C. 更新 authors 表的 sysindexes
下例报告有关 authors 表的信息。

DBCC UPDATEUSAGE ('pubs','authors')
GO

D. 更新指定索引的 sysindexes
下例使用索引名 UPKCL_auidind。

DBCC UPDATEUSAGE ('pubs', 'authors', 'UPKCL_auidind')

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

你马上用dbcc修复,如果不行,

select * into 另一个库..新表名 from t1

把数据备份出来。

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

可以先用DBCC CheckDB和DBCC CheckTable检查一下
---------------------------------------------------------------

先使用DBCC DBREINDEX命令重建指定数据库中表的一个或多个索引
再导出数据

Published At
Categories with 数据库类
comments powered by Disqus