2、一个批量的update语句即可,限定条件尽可能使用索引字段。

解决方案 »

  1.   

    --小修复(只修复你查出的问题)
    --断开所有用户的连接,执行下面的代码进行修复
    exec sp_dboption '你的数据库名', 'single user', 'true'
    GoDBCC CHECKTABLE('table2',repair_rebuild)
    DBCC DBREINDEX('table2')
    goexec sp_dboption '你的数据库名', 'single user', 'false'
    Go
      

  2.   

    3、指定 DBCC CHECKTABLE 修复发现的错误。数据库必须在单用户模式下以使用修复选项,可以是下列值之一:REPAIR_ALLOW_DATA_LOSS
    执行由 REPAIR_REBUILD 完成的所有修复,包括对行和页进行分配和取消分配以改正分配错误、结构行或页的错误,以及删除已损坏的文本对象。这些修复可能会导致一些数据丢失。修复操作可以在用户事务下完成以允许用户回滚所做的更改。如果回滚修复,则数据库仍会含有错误,应该从备份进行恢复。如果由于所提供修复等级的缘故遗漏某个错误的修复,则将遗漏任何取决于该修复的修复。修复完成后,备份数据库。
     
    REPAIR_FAST
    进行小的、不耗时的修复操作,如修复非聚集索引中的附加键。这些修复可以很快完成,并且不会有丢失数据的危险。
     
    REPAIR_REBUILD
    执行由 REPAIR_FAST 完成的所有修复,包括需要较长时间的修复(如重建索引)。执行这些修复时不会有丢失数据的危险。 
      

  3.   

    --如果可能,对你的整个数据库进行检测修复(花费的时间较长)
    --注意修改数据库名,其他不用修改USE MASTER
    GOsp_dboption '你的数据库名', 'single user', 'true'
    GoDBCC CHECKDB('你的数据库名', REPAIR_ALLOW_DATA_LOSS) 
    GoUSE 你的数据库名
    goexec sp_msforeachtable 'DBCC CHECKTABLE(''?'',REPAIR_ALLOW_DATA_LOSS)'
    exec sp_msforeachtable 'DBCC DBREINDEX(''?'')'
    gosp_dboption '你的数据库名', 'single user', 'false'
    Go
      

  4.   

    1.企业管理器-〉右键你的数据库服务器-〉属性-〉连接-〉查询超时限定设为0-〉确定
    2.根据实际情况写update语句
    3.有重复数据?
      

  5.   

    首先运行下DBCC CHECKDB('dbname'),根据结果的提示看是否需要对数据库做修复
      

  6.   

    不要害怕,要对SQL Server有信心,我现在维护的一个表有9000多万行了,数据库Data文件有24G了,一样用得很流畅,注意你平时所用到SQL语句,优化索引,坚决杜绝全表扫描,一般就不会有什么大问题。乖乖
      

  7.   

    zjcxc(邹建)
    采用你的修复,运行1小时了还是无变化。强制取消就出错了。
      

  8.   

    那你就不要修复,将你的数据库导出为一个新库吧sql200企业管理器
    --右键你的的数据库
    --所有任务
    --导出数据
    --目标数据库,选择<新建>
    --然后选择"在两个SQL数据库之间复制数据和对象"
    --勾选"创建目的对象"和"包括扩展属性",其他的选项根据需要设置
    --最后完成.