下例创建一个称为 MyNwind2_Test 的新数据库。MyNwind2_Test 是现有 MyNwind2 数据库的复本,它包含两个文件:MyNwind2_data 和 MyNwind2_log。由于 MyNwind2 数据库已经存在,因此在还原操作期间需要移动备份中的文件。RESTORE FILELISTONLY 语句用于确定待还原数据库内的文件的数目和逻辑及物理名称。USE master GO -- First determine the number and names of the files in the backup. -- MyNwind_2 is the name of the backup device. RESTORE FILELISTONLY FROM MyNwind_2 -- Restore the files for MyNwind2_Test. RESTORE DATABASE MyNwind2_Test FROM MyNwind_2 WITH RECOVERY, MOVE 'MyNwind2_data' TO 'D:\MyData\MyNwind2_Test_data.mdf', MOVE 'MyNwind2_log' TO 'D:\MyData\MyNwind2_Test_log.ldf' GO
如何取得一个database的逻辑文件名:select fileid, name,filename from 'DatabaseName'..sysfiles
MOVE 'DotNet_data' TO 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\AES006LIBClass_data.mdf ',
MOVE 'DotNet_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\AES006LIBClass_log.ldf'
----
我如何通过一个备份文件AES006LIBClass知道这两个逻辑文件名'DotNet_data','DotNet_log'呢 现在知道下面命令
RESTORE FILELISTONLY FROM disk='D:\AesCinfigTool\Data\Export\AES006LIBClass'
可以获得LogicName physicalName
DotNet_data c:\Program Files\Microsoft SQL Server\MSSQL\Data\AES001LIBClass.mdf
DotNet_log c:\Program Files\Microsoft SQLServer\MSSQL\Data\AES001DOLIBClass_log.ldf当然可以通过一次服务器往返得到后再处理 但有没有更直接点得方法不与服务器往返就可以完成这个功能呢
也就是帖子中
2.用查询分析器恢复数据库的时候
比如我先创建一个a的数据库 用b(原来数据库)的备份来恢复
默认的mdf文件名是b_data.mdf ,我在查询分析器里如何变成a_data.mdf,并且把force restore over existing database 选上
如果不改mdf文件名 肯定不对..各位高人指点一下哦
GO
-- First determine the number and names of the files in the backup.
-- MyNwind_2 is the name of the backup device.
RESTORE FILELISTONLY
FROM MyNwind_2
-- Restore the files for MyNwind2_Test.
RESTORE DATABASE MyNwind2_Test
FROM MyNwind_2
WITH RECOVERY,
MOVE 'MyNwind2_data' TO 'D:\MyData\MyNwind2_Test_data.mdf',
MOVE 'MyNwind2_log' TO 'D:\MyData\MyNwind2_Test_log.ldf'
GO