日期:2014-05-18  浏览次数:20467 次

【紧急求援】误删了sysusers里dbo这条记录 现在怎么恢复
昨天服务器被人黑了   重装了C盘的系统   数据库在D盘

恢复数据库的时候老提示用户拥有对象而无法删除  

然后采取网上的一个办法
------------------
方法一
首先你需要做的第一件事
企业管理器-〉选择服务器-〉属性-〉服务器设置-〉挑上允许对系统目录。。。-〉确定
第二步
找到你的数据库找到sysusers表那你以前的用户删除
第三步回去吧属性值改回来
第四部重建用户即可
-----------------------------------

但是我在第二步的时候多删了一个   DBO的记录  

结果系统就提示

服务器:   消息   7987,级别   22,状态   6,行   1
在数据库   'WSEDSQLDB '   中检测到一个可能的数据库一致性问题。应该对数据库   'WSEDSQLDB '   运行   DBCC   CHECKDB   和   DBCC   CHECKCATALOG。

连接中断

于是   我在查询分析器里   运行   DBCC   CHECKDB     没有提示问题
但是   运行了   DBCC   CHECKCATALOG   出现下面这个问题

-------------------------------------------
服务器:   消息   2510,级别   16,状态   1,行   1
系统表已损坏:   'dbo '   的   sysusers   中缺少的行对于   SQL   Server   操作是必需的。有关详细信息,请参阅   Microsoft   知识库文章   315523。
'current   database '   的   DBCC   结果。
DBCC   执行完毕。如果   DBCC   输出了错误信息,请与系统管理员联系。
--------------------------------------------


本来以为有备份数据库   结果发现备份的只是C盘  


大家帮忙看看还有什么办法可以用啊。。。。死定了

------解决方案--------------------
同情,我看是死了,up一下,看看其他人有办法吗,死马当活马医吧
------解决方案--------------------
1.重装数据库
2.附加数据库
------解决方案--------------------
重装SQL,然后附加数据库.和CathySun118(斯年)想法一致.
------解决方案--------------------
其实整个数据库只是sysusers 表损坏了,用户表没有损坏
可参考以下方法:
新建一个数据库WSEDSQLDB_new,然后在查询分析器执行如下
declare @s varchar(8000)
select @s= 'select * into WSEDSQLDB_new.. '+name+ ' from '+name
from sysobjects where xtype= 'u ' and status> 0
exec(@s)

通过动态语句就可以把把所有表导到新库WSEDSQLDB_new中