我们知道采用下面的语句可以还原数据库:
RESTORE DATABASE "DbName" FROM DISK='D:\data.bak';但是,这样还原有一个缺点,就是还原成功的数据库的MDF和LDF文件路径和名称,都是带着DbName原记录的,而我想定义新的MDF和LDF文件分别为:
E:\text.MDF
E:\text.LDF
要如何操作?请达人指导。数据库sql ldf ldfmdfsql

解决方案 »

  1.   

    加上move子句。restore database db from disk='D:\data.bak'
    with move 'mdf逻辑文件名' to 'E:\text.MDF',
         move 'ldf逻辑文件名' to 'E:\text.ldf'
      

  2.   


    这个我看还是有问题,因为事前并不可能知道[mdf逻辑文件名]和[ldf逻辑文件名]的值啊。
      

  3.   

    我知道了,用了一个笨方法:
    --查看文件逻辑文件名 
    restore filelistonly from disk='D:/data.bak'--查询数据库逻辑文件名
    SELECT name FROM sys.database_files--修改数据文件或日志文件的逻辑名称
    ALTER DATABASE [DbName]
    MODIFY FILE ( NAME = mylongbaidb, NEWNAME = new_mydb ) 
    ALTER DATABASE [mydb]
    MODIFY FILE ( NAME = mydb_log, NEWNAME = new_mydb_log ) 
    感谢二楼大哥!