本帖最后由 sr_hnsmx 于 2013-08-05 16:58:35 编辑

解决方案 »

  1.   

    restore database database1 from disk = 'E:\123\ZT001\2012\data.bak' with move 'Ufmodel'  to   'c:\data\ufdata.mdf'  
      

  2.   

    restore database database1 from disk = 'E:\123\ZT001\2012\data.bak' with move 'Ufmodel'  to   'c:\data\ufdata.mdf'  ,
    move 'Ufmodel_log' to 'c:\data\ufdata.ldf'  
      

  3.   

    declare 
    @BackupFilePath nvarchar(100),   --备份文件所在路径
    @NewDataName nvarchar(100),  --新数据库名称
    @NewMdfPath nvarchar(120),  --新.Mdf数据文件存储路径
    @NewLdfPath nvarchar(120)        --新.Ldf日志文件存储路径set @BackupFilePath = 'E:\数据库备份\文件名.bak'
    set @NewDataName = 'NEW_DATABASENAME'
    set @NewMdfPath = 'D:\test\' + @NewDataName + '.mdf'  --新数据库Data路径,一定不能和其它路径重复,否则会覆盖
    set @NewLdfPath = 'D:\test\' + @NewDataName + '_log.ldf'  --新数据库Log路径,一定不能和其它路径重复,否则会覆盖restore filelistonly from disk = @BackupFilePath  --查询出备份文件中Data文件及Log文件的名称,用于Restore Database时MOVE x TO y 中的x参数--还原数据库(还原成一个新数据库)
    restore database @NewDataName from disk = @BackupFilePath
    WITH MOVE '上面查出的逻辑数据库名' TO @NewMdfPath,
     MOVE '上面查出的逻辑数日志名' TO @NewLdfPath
      

  4.   

    SELECT  name ,  
            physical_name AS CurrentLocation ,  
            state_desc  
    FROM    sys.master_files  
    WHERE   database_id = DB_ID(N'<database_name>') ;  
    先看看你的文件名是什么,不是乱填的
      

  5.   

    LZ,你的文件名是你的数据库中的数据文件名,
    比如:
    create database database_name(name='aaa',filename='D:\aaa.mdf')
    log on (name='bbb',filename='D:\bbb.ldf')
    那么你move的数据文件名为aaa,日志文件名为bbb。