使用的是2000数据库,修复数据库,仍然有错误修复不了。使用select object_name 知道的是哪个表,发现这个表使用drop和在企业管理器中删除不掉。、
    目前的解决方案是,将这个表改名,重新建立这个表。
不知道大家有什么好的方法

解决方案 »

  1.   

    原来SSMS中数据库右键有rename的功能,膜拜..
      

  2.   

    上面讲到的,把数据库里的,除那个有问题的表之外的数据,全部导入到新建的一个数据库中,这个是好办法,然后再重命名数据库成原来的名字,就可以。但这个如果数据库挺大的话,那么得停应用,估计时间会比较长。如果不停应用,应用还在访问数据库,那么很有可能数据是实时变化的,你得不停的把数据变化同步到那个新的数据库,我觉得可以考虑数据库复制,不复制那个有问题的表,然后晚上停应用,把原来的数据库sp_detach,再把数据库重命名为原来的数据库就可以了,这样速度会快很多。
      

  3.   

    尝试用dbcc checkdb修复一下数据库的错误
      

  4.   

        谢谢大家的积极回复,这个是给客户用的数据库,不能长时间停。还有就是这个库中有很多试图和存储过程,触发器什么的,建立新库在导表,之后重建触发器试图存储过程什么的,工作量大,而且感觉很有风险。
        3楼的看的不仔细啊,有问题的表,无法删除,只可以改名
        4567楼的建立新库导数据的,这个工作量太大,风险也大。
        我是想有没有语句或者其他方法,去删除这个表,直接在企业管理器中或使用drop都无法删除。
      

  5.   

    这种问题是比较困难,因为就算是微软估计都停止对SQL Server 2000的技术支持,否则倒还是可以求助 微软的技术支持的。
      

  6.   

    try this,use mastersp_configure 'allow updates',1reconfigure with override
    use [数据库名]delete from sysobjects 
     where xtype='U' and name='[表名]'
      

  7.   

    原来SSMS中数据库右键有rename的功能,膜拜..

    学习了,哈哈