根据网上朋友提供的,操作如下:
1、备份原数据库文件
2、创建一个和原来 DB 名字一样的数据库
3、停止数据库服务
4、把备份的数据库文件复制并覆盖新创建的物理文件
5、启动数据库服务
6、然后运行下面的SQL:
USE MASTER
GO
SP_CONFIGURE 'ALLOW UpdateS',1 RECONFIGURE WITH OVERRIDE
GO
Update SYSDATABASES SET STATUS =32768 Where NAME='JlJLERP'
Go
sp_dboption 'JlJLERP', 'single user', 'true'
Go
DBCC CHECKDB('JlJLERP')
Go
update sysdatabases set status =28 where name='JlJLERP'
Go
sp_configure 'allow updat es', 0 reconfigure with override
Go
sp_dboption 'JlJLERP', 'single user', 'true'
Go
7、出现错误

解决方案 »

  1.   

    服务器: 消息 8905,级别 16,状态 1,行 1
    扩展盘区 (1:275320)(属于数据库 ID 8)在 GAM 中标记为已分配,但没有 SGAM 或 IAM 分配过该盘区。
    服务器: 消息 8944,级别 16,状态 1,行 1
    表错误: 对象 ID 304108224,索引 ID 0,页 (1:262940),行 1。测试(ColumnOffsets <= (nextRec - pRec))失败。值为 28 和 0。
    服务器: 消息 8928,级别 16,状态 1,行 1
    表错误: 对象 ID 304108224,索引 ID 1。索引节点页 (1:275702),槽 48 指向子页 (1:144308) 和上一子页 (1:133858),但未遇到这些页。
    服务器: 消息 8980,级别 16,状态 1,行 1
    表错误: 对象 ID 304108224,索引 ID 1。索引节点页 (1:275702),槽 49 指向子页 (1:193996) 和上一子页 (1:144308),但未遇到这些页。
    服务
      

  2.   


            企业管理器--右键suspect的数据库--所有任务--分离数据库
      然后备份你的suspect数据库的文件,再按下面的步骤处理:
      1.新建一个同名的数据库
      2.再停掉sql server
      3.用suspect数据库的文件覆盖掉这个新建的同名数据库
            4.再重启sql server
      5.此时打开企业管理器时新建的同名数据库会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)
      6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还有问题,解决办法是,利用数据库的脚本创建一个新的数据库,并将数据导进去就行了。  
      如果这样改不加数据库状态,你就把数据库导成一个新库来代替旧库吧:
      企业管理器--右键你的数据库--所有任务--导出数据
           --目标标数据库选择新建
           --选择"在两个sql数据库之间复制对象和数据"
           --把"包含扩展属性"选上,其他的根据需要选择
           --最后完成
      

  3.   

    EXEC sp_resetstatus 'suspect'
    然后,停止并重新启动 SQL Server。不过建议先将日志贴上来,看看日志里数据库报错的原因是什么,这样对症下药就可以药到病除.
      

  4.   

    EXEC sp_resetstatus 'suspect'
    然后,停止并重新启动 SQL Server。然后按楼上的一样,执行 DBCC DBRECOVER(数据库)运行恢复操作。 执行 sp_detach_db 分离数据库。
    执行 sp_attach_db 附加数据库,指向被移动的文件。
      

  5.   

    不好说,按理说mssql没有这么弱,断一次电就全完了.但是断电确实是致命的.
      

  6.   

    參考一下:http://blog.csdn.net/feixiangVB/archive/2006/11/15/1386820.aspx
      

  7.   

    这种问题见得多了,我想楼主已经把这个数据库置为可操作的单人模式了,只有将这个数据库的数据转移到其它数据库了。以下代码,可以得到将A库存数据转移到B库存的全部代码,不知对你有没有用,共享给你吧,这种活我也做了不少了,我们的数据库还有时间戳的计数问题,整个就是麻烦啊。/*将相同数据库结构的A库的全部内容复制到B库 gthlu*/
    declare @sql1 varchar(4000)
    declare @sql2 varchar(4000)
    declare @name varchar(40)
    declare @column varchar(40)
    declare @database varchar(40)set @database = 'bs'    --录入更新后的数据库
    create table #sql(text varchar(4000))declare objectname cursor for
    select [name] from sysobjects where type = 'u'open objectnamefetch next from objectname into @namewhile @@fetch_status = 0
      begin 
        select @sql1 = 'alter table ' +  @database + '..' +  @name + ' disable trigger all ' +  'insert into ' + @database + '..' + @name + '('
        select @sql2 = 'select '
        
        declare objectcolumn cursor for
        select name from syscolumns where object_id(@name) = id and xtype <> '189' and autoval is  null 
        open objectcolumn
        fetch next from objectcolumn into @column     while @@fetch_status = 0
          begin  select @sql1 = @sql1 + @column + ','
    select @sql2 = @sql2 + @column + ','        fetch next from objectcolumn into @column 
          end 
         close objectcolumn
         deallocate objectcolumn     select @sql1 = left(@sql1,len(@sql1) - 1) + ') '
         select @sql2 = left(@sql2,len(@sql2) - 1) + ' from ' + @name + ' alter table ' + @database + '..' + @name + ' enable trigger all'     insert into #sql select @sql1 + @sql2
         fetch next from objectname into @name
      endclose objectname
    deallocate objectnameselect * from #sqldrop table #sqlgo