只要恢复存储过程和表结构。
各位论坛的达人。十万火急的紧急问题求助!
最近这两周,我们部门正在做一个项目的重要升级。(主要是存储过程方面的,当然也加了一些表和修改了一部分程序的源代码)
昨天下午左右,项目经理让我更改一些表的数据库字段属性,把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