大家救命啊:系统表更新导致数据库崩溃,有没有办法还原? //以解决,谢谢大家关注...

只要恢复存储过程和表结构。
各位论坛的达人。十万火急的紧急问题求助!
最近这两周,我们部门正在做一个项目的重要升级。(主要是存储过程方面的,当然也加了一些表和修改了一部分程序的源代码)
昨天下午左右,项目经理让我更改一些表的数据库字段属性,把Description字段类型从NTEXT改为VARCHAR,由于表比较多,结构都是一样的(就是一年中每天一张表,记详单数据的,查了一下,大约有200左右个表的类型不是VARCHAR),当时不知道怎么的脑子没转,心想只要更新用户库的SYSCOLUMNS,改变这些字段的类型值不就可以做到了吗。(后面出了事故才醒悟过来,当时怎么不用ALTER TABLE来更改呢?)。
然后我就开始晕头晕脑的更新系统表SYSCOLUMNS,结果以不小心把SQL写错。写成

UPDATE MYDB..SYSCOLUMNS
     SET XTYPE=167,TYPESTAT=2,XUSERTYPE=167,LENGTH=256,XOFFSET=-11
    FROM
        (
   SELECT *
     FROM MYDB..SYSCOLUMNS
    WHERE [ID] IN
           (
    SELECT [ID]
      FROM MYDB..SYSOBJECTS
     WHERE [NAME] LIKE 'CORPBIL _%'
             )
           AND [NAME]='description' AND XTYPE=99
         ) AAA
--本来的意思是这个: 
  UPDATE MYDB..SYSCOLUMNS
     SET XTYPE=167,TYPESTAT=2,XUSERTYPE=167,LENGTH=256,XOFFSET=-11
   WHERE [ID] IN
           (
    SELECT [ID]
      FROM MYDB..SYSOBJECTS
     WHERE [NAME] LIKE 'CORPBIL _%'
             )
           AND [NAME]='description' AND XTYPE=99
结果导致了更新了整个用户库的所有的COLUMNS属性。接下来的结果当然是数据库崩溃。
所有的表,存储过程都没有了。而数据库之前没有得到备份,最早的备份是一个月前了。这就意味着这两周我们 这可是我们部门所有开发部同事做的所有工作都没有了。

两个星期的心血不能这样就百费了啊!!我怎么对得起同事们呢?下个星期就要系统上线了.现在那个急啊!!!!
请叫各位达人,像这种情况有没有办法恢复过来(不需要恢复数据,只要恢复存储过程就可以了。
以下是一些问题截图:
---------------------------------------
 

企业资源管理器中,点击崩溃的数据库,右键,属性。 出错




 

企业资源管理器中,点击崩溃的数据库数据表,出错。


 

在查询分析器里,SELECT * FROM SYSOBJECTS出错


在查询分析器里,SELECT * FROM SYSCOLUMNS出错


 

但是执行这个不报错。但是查询结果全部是空白。如图:

SELECT [name], [id], [xtype], [typestat], [xusertype],

       [length], [xprec], [xscale], [colid], [xoffset],

       [bitpos], [reserved], [colstat], [cdefault],

       [domain], [number], [colorder], [autoval], [offset],

       [collationid],[language]--, --[status],

       --[type],[usertype],[printfmt],[prec],[scale],[iscomputed]

       --[isoutparam], [isnullable], [collation], [tdscollation]  

FROM syscolumns

转载于:https://www.cnblogs.com/Maxer/archive/2006/09/02/493191.html

猜你喜欢

转载自blog.csdn.net/weixin_34269583/article/details/93994796