restore database database1 from disk = 'E:\123\ZT001\2012\data.bak' with move 'Ufmodel' to 'c:\data\ufdata.mdf'
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'
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
SELECT name , physical_name AS CurrentLocation , state_desc FROM sys.master_files WHERE database_id = DB_ID(N'<database_name>') ; 先看看你的文件名是什么,不是乱填的
LZ,你的文件名是你的数据库中的数据文件名, 比如: create database database_name(name='aaa',filename='D:\aaa.mdf') log on (name='bbb',filename='D:\bbb.ldf') 那么你move的数据文件名为aaa,日志文件名为bbb。
move 'Ufmodel_log' to 'c:\data\ufdata.ldf'
@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
physical_name AS CurrentLocation ,
state_desc
FROM sys.master_files
WHERE database_id = DB_ID(N'<database_name>') ;
先看看你的文件名是什么,不是乱填的
比如:
create database database_name(name='aaa',filename='D:\aaa.mdf')
log on (name='bbb',filename='D:\bbb.ldf')
那么你move的数据文件名为aaa,日志文件名为bbb。