执行语句
sp_dboption 'test','single user','true'   
Go  
 
DBCC CHECKDB('test',REPAIR_ALLOW_DATA_LOSS)     
Go  
 
sp_dboption 'test', 'single user','false'   提示信息
服务器: 消息 7919,级别 16,状态 2,行 2
未处理修复语句。数据库需要处于单用户模式下。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
但从查询分析器那里看 显示 test(单个用户)

解决方案 »

  1.   

    sp_dboption 'test','single user','true'  
    Go 你这语句没执行?
      

  2.   

    执行了啊,,,从查询分析器那里看  显示 test(单个用户)
      

  3.   

    如果是只执行
    DBCC CHECKDB('avon')的话可以,会提示一些索引的错误,我是想让他修复一些错误。加上后面的参数
    REPAIR_ALLOW_DATA_LOSS 就不行了。
      

  4.   

    use   master   
      go   
      --建一个存储过程,断开所有用户连接。   
      create   proc   killspid   (@dbname   varchar(20))   
      as   
      begin   
      declare   @sql   nvarchar(500)   
      declare   @spid   int   
      set   @sql='declare   getspid   cursor   for     
      select   spid   from   sysprocesses   where   dbid=db_id('''+@dbname+''')'   
      exec   (@sql)   
      open   getspid   
      fetch   next   from   getspid   into   @spid   
      while   @@fetch_status<>-1   
      begin   
      exec('kill   '+@spid)   
      fetch   next   from   getspid   into   @spid   
      end   
      close   getspid   
      deallocate   getspid   
      end   
        
      go   
        
      --用法   
      use   master   
      exec   killspid   '数据库名'   
        然后再执行上面的语句!不知道这样行不行。try
      

  5.   

    试试
    use master
    go
    DBCC CHECKDB('test',REPAIR_ALLOW_DATA_LOSS)   
    go
      

  6.   

    怎么试都是出现
    未处理修复语句。数据库需要处于单用户模式下。
    DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
    这种问题
      

  7.   

    我看了进程信息那里根本没有test数据库的使用。
      

  8.   


    use master
    go
    -- 检查数据库的状态
    select (case when status=4096 then 'single user' else 'others' end) from sysdatabases where [name]='test'
    -- 正在检查使用 test 数据库的会话
    select spid,loginame,cmd from sysprocesses where dbid=db_id('test')
      

  9.   


    这个结果是 other 另一个没有记录,, 应该是单用户模式,不明白为什么还提示
    未处理修复语句。数据库需要处于单用户模式下。
    DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
    是不是什么地方设置不正确啊?
      

  10.   

    如果 test 数据库处于单用户模式,第一条语句应该返回 single user (status=4096)。由于是根据 sql server 2k5 的联机丛书得到的 status 值,因此不知道此值是否与 sql server 2000 中的一致,暂时存疑。
    不过建议 lz 重新使用此语句将 test 数据库至于单用户模式。USE MASTER
    GO
    ALTER DATABASE test SET SINGLE_USER WITH ROLLBACK IMMEDIATE
    GO
      

  11.   


    我的结果是:1.others
      2.spid loginame  
      怎么说