--数据库文件名的问题--查询分析器中执行下面的语句来解决restore database 数据库名
from disk='c:\a.bak' --c:\a.bak是备份文件名
with move 'SXT_dat' to 'c:\sxt.mdf' --将sxt_dat恢复到文件c:\sxt.mdf
,move 'SXT_log' to 'c:\sxt.ldf' --将sxt_log恢复到文件c:\sxt.ldf
from disk='c:\a.bak' --c:\a.bak是备份文件名
with move 'SXT_dat' to 'c:\sxt.mdf' --将sxt_dat恢复到文件c:\sxt.mdf
,move 'SXT_log' to 'c:\sxt.ldf' --将sxt_log恢复到文件c:\sxt.ldf
c:\sxt.ldf
中的c:\要求是你的电脑中已经存在的任何目录
文件名,可以是该目录下任何不存在的文件名
restore database STX_X from disk='E:\a'
with move 'STX_X_data' to 'E:\Program Files\Microsoft SQL Server\MSSQL\Data\STX_X_Data.MDF'
,move 'STX_X_log' to 'E:\Program Files\Microsoft SQL Server\MSSQL\Data\STX_X_Log.LDF'
服务器: 消息 1834,级别 16,状态 1,行 1
无法重写文件 'E:\Program Files\Microsoft SQL Server\MSSQL\Data\STX_X_Data.MDF'。数据库 'STX_X' 正在使用该文件。
服务器: 消息 3156,级别 16,状态 1,行 1
文件 'STX_X_Data' 无法还原为 'E:\Program Files\Microsoft SQL Server\MSSQL\Data\STX_X_Data.MDF'。请使用 WITH MOVE 选项来标识该文件的有效位置。
服务器: 消息 1834,级别 16,状态 1,行 1
无法重写文件 'E:\Program Files\Microsoft SQL Server\MSSQL\Data\STX_X_Log.LDF'。数据库 'STX_X' 正在使用该文件。
服务器: 消息 3156,级别 16,状态 1,行 1
文件 'STX_X_Log' 无法还原为 'E:\Program Files\Microsoft SQL Server\MSSQL\Data\STX_X_Log.LDF'。请使用 WITH MOVE 选项来标识该文件的有效位置。
服务器: 消息 3013,级别 16,状态 1,行 1
RESTORE DATABASE 操作异常终止。
如果恢复的时候不指定move选项,则使用备份文件中保存的文件信息
如果你要恢复的磁盘上没有这个目录,自然恢复会报错
restore database STX_X from disk='E:\a'
with move 'STX_X_data' to 'E:\Program Files\Microsoft SQL Server\MSSQL\Data\STX_X_Data.MDF'
,move 'STX_X_log' to 'E:\Program Files\Microsoft SQL Server\MSSQL\Data\STX_X_Log.LDF'
服务器: 消息 1834,级别 16,状态 1,行 1
无法重写文件 'E:\Program Files\Microsoft SQL Server\MSSQL\Data\STX_X_Data.MDF'。数据库 'STX_X' 正在使用该文件。
服务器: 消息 3156,级别 16,状态 1,行 1
文件 'STX_X_Data' 无法还原为 'E:\Program Files\Microsoft SQL Server\MSSQL\Data\STX_X_Data.MDF'。请使用 WITH MOVE 选项来标识该文件的有效位置。
服务器: 消息 1834,级别 16,状态 1,行 1
无法重写文件 'E:\Program Files\Microsoft SQL Server\MSSQL\Data\STX_X_Log.LDF'。数据库 'STX_X' 正在使用该文件。
服务器: 消息 3156,级别 16,状态 1,行 1
文件 'STX_X_Log' 无法还原为 'E:\Program Files\Microsoft SQL Server\MSSQL\Data\STX_X_Log.LDF'。请使用 WITH MOVE 选项来标识该文件的有效位置。
服务器: 消息 3013,级别 16,状态 1,行 1
RESTORE DATABASE 操作异常终止。
with move 'STX_X_data' to 'E:\Program Files\Microsoft SQL Server\MSSQL\Data\STX_X_Data.MDF'
,move 'STX_X_log' to 'E:\Program Files\Microsoft SQL Server\MSSQL\Data\STX_X_Log.LDF'
,replace --强制覆盖选项
go--关闭用户进程
declare @s nvarchar(1000)
declare tb cursor local for
select s='kill '+cast(spid as varchar)
from master..sysprocesses
where dbid=db_id(N'STX_X')open tb
fetch next from tb into @s
while @@fetch_status=0
begin
exec(@s)
fetch next from tb into @s
end
close tb
deallocate tb
go--删除旧库
drop database STX_X
go--再恢复
restore database STX_X from disk='E:\a'
with move 'STX_X_data' to 'E:\Program Files\Microsoft SQL Server\MSSQL\Data\STX_X_Data.MDF'
,move 'STX_X_log' to 'E:\Program Files\Microsoft SQL Server\MSSQL\Data\STX_X_Log.LDF'
,replace --强制覆盖选项