先设置数据库为SINGLE模式,然后sp_attach db with nolog

解决方案 »

  1.   

    收缩日志文件,速度超快dbcc shrinkfile(收缩文件的逻辑名称,收缩后文件大小(单位:M),默认1M)
    例:
    dbcc shrinkfile(XXX_Log,1)
      

  2.   

    同时可以设置截断日志exec sp_dboption '数据库逻辑名称','trunc. log on chkpt.',true 
    例:
    exec sp_dboption  XXX,'trunc. log on chkpt.',true
      

  3.   

    另,我手头上只有一个备份的A.BAK文件,并没有数据库。
      

  4.   

    我手头上只有一个备份的A.BAK文件,并没有数据库。?1、那就还原后,再收缩2、还原的时候 不带日至还原  楼上都说过了
      

  5.   

    可能你的日志文件与数据库文件对不上,试试以下方法:无数据库日志文件恢复数据库方法  数据库日志文件的误删或别的原因引起数据库日志的损坏 
      1.新建一个同名的数据库  2.再停掉sql server(注意不要分离数据库)  3.用原数据库的数据文件覆盖掉这个新建的数据库  4.再重启sql server  5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)  6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用数据库的脚本创建一个新的数据库,并将数据导进去就行了.   USE MASTER
      GO  SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
      GO  UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='置疑的数据库名'
      Go  sp_dboption '置疑的数据库名', 'single user', 'true'
      Go  DBCC CHECKDB('置疑的数据库名') 
      Go  update sysdatabases set status =28 where name='置疑的数据库名'
      Go  sp_configure 'allow updates', 0 reconfigure with override
      Go   sp_dboption '置疑的数据库名', 'single user', 'false'
      Go
      

  6.   

    楼上说的这种方式是不是在还原了以后再压缩的?这样说吧,我手头有一个A.bak的备份文件,和一台新装的SQL2000的机器。我要把这个文件还原到数据库系统里面,但是提示空间不足。在不增加磁盘空间的情况下,我想还原这个数据库。在一台足够大空间的机器上,我还原试过,还原以后日志文件是有5G多的。而我现在这台机器才3G多的剩余空间。所以我想还原上去的时候自动删除这个日志!注:楼上很多兄弟说的方法都是还原以后再做压缩之类的操作,而我是要在还原的同时就把日志截去。
      

  7.   

    给楼主补充一下,你所谓的“还原的同时就把日志截去”不大可能实现
    只能在另一个空间足够大(》5G)的分区还原,然后压缩后再拷贝回来
    既然是保存SQL Server数据库的分区,就弄大一点嘛:)