【紧急求援】误删了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中