以下示例分离 AdventureWorks,然后将 AdventureWorks 中的一个文件附加到当前服务器。USE master;
GO
EXEC sp_detach_db @dbname = 'AdventureWorks';
EXEC sp_attach_single_file_db @dbname = 'AdventureWorks', 
    @physname = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\AdventureWorks_Data.mdf';

解决方案 »

  1.   

    如果是2005的话,还可以用增强的CREATE DATABASE 命令附加,不用使用这个命令
      

  2.   


    --2005的语法:
    CREATE DATABASE database_name 
        ON <filespec> [ ,...n ] 
        FOR { ATTACH [ WITH <service_broker_option> ]
            | ATTACH_REBUILD_LOG }
    [;]
    具体解释,参考联机丛书了。
      

  3.   

    这个bak里还原出来是包含一个mdf和一个ldf文件的。也就是通用的方法。
    现在这只要让他还原mdf.不要ldf。
      

  4.   

    如果你说的是一个备份文件,那无法。
    我以为你说的是你有MDF文件和LDF两个物理文件。
      

  5.   

    将ldf文件改名。然后只附加mdf文件。记得,不要删除,改ldf的文件名,并且备份mdf,以免单mdf附加失败造成损失。
    参见单mdf附加:
    http://topic.csdn.net/u/20071031/18/433fedf6-7aae-4b3c-846e-0bd64e2e079f.html
      

  6.   

    照13楼说得做. 
    在附加 mdf 文件的时候, SQLServer 会提示你创建一个新的 ldf 文件, 这样就避名了附加先前的 ldf 的文件. 
    此方法同样也是一种收缩数据库的方法
      

  7.   

    我没有mdf也没有ldf,只有一个备份文件bak。400多m看一下里面有三直几G的日志都不知道要还原多久。
      

  8.   

    没办法只能找一台空间足够的机子做还原了。不知道为什么ldf会那么大,mdf才几百m而ldf到了30几G。
    做了收缩也是一样有30几G这个问题怎么解决呀?