数据库名字叫YXBADB_ICD10,语句如下:
RESTORE DATABASE YXDABD_ICD10
FROM DISK ='E:\YXDABD_ICD10.BAK'
WITH
MOVE 'YXDABD_ICD10_Data'
TO 'E:\mssql2005\MSSQL.1\MSSQL\Data\YXDABD_ICD10.mdf',
MOVE 'YXDABD_ICD10_log'
TO 'E:\mssql2005\MSSQL.1\MSSQL\Data\YXDABD_ICD10.ldf'其他数据库用同样的语句还原成功,我想是不是数据库名字中带下划线造成的,错误信息如下:
消息 3234,级别 16,状态 2,第 1 行
逻辑文件 'YXDABD_ICD10_Data' 不是数据库 'YXDABD_ICD10' 的一部分。请使用 RESTORE FILELISTONLY 来列出逻辑文件名。
消息 3013,级别 16,状态 1,第 1 行
RESTORE DATABASE 正在异常终止。
RESTORE DATABASE YXDABD_ICD10
FROM DISK ='E:\YXDABD_ICD10.BAK'
WITH
MOVE 'YXDABD_ICD10_Data'
TO 'E:\mssql2005\MSSQL.1\MSSQL\Data\YXDABD_ICD10.mdf',
MOVE 'YXDABD_ICD10_log'
TO 'E:\mssql2005\MSSQL.1\MSSQL\Data\YXDABD_ICD10.ldf'其他数据库用同样的语句还原成功,我想是不是数据库名字中带下划线造成的,错误信息如下:
消息 3234,级别 16,状态 2,第 1 行
逻辑文件 'YXDABD_ICD10_Data' 不是数据库 'YXDABD_ICD10' 的一部分。请使用 RESTORE FILELISTONLY 来列出逻辑文件名。
消息 3013,级别 16,状态 1,第 1 行
RESTORE DATABASE 正在异常终止。
'E:\mssql2005\MSSQL.1\MSSQL\Data\YXDABD_ICD10.ldf'上述两文件是否存在?
详细看帮助的 restore filelistonly
FROM DISK ='E:\YXDABD_ICD10.BAK'看一下 LogicalName
E:\mssql2005\MSSQL.1\MSSQL\Data\ 该文件的物理路径是不存在?
FROM DISK ='E:\YXDABD_ICD10.BAK'获得逻辑文件名
然后修改现有YXDABD_ICD10数据库的逻辑文件名... 使你RESTORE 的时候MOVE 'YXDABD_ICD10_Data' 不会同现有数据库逻辑文件名重复.
ALTER DATABASE YXDABD_ICD10 MODIFY FILE
(NAME = 'YXDABD_ICD10_Data', NEWNAME = 'YXDABD_ICD10True_Data')之后建一个存储过程.关闭数据库排他权限.use master
goif exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_killspid]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[p_killspid]
GOcreate proc p_killspid
@dbname sysname --要关闭进程的数据库名
as
declare @s nvarchar(1000)
declare tb cursor local for
select s='kill '+cast(spid as varchar)
from master..sysprocesses
where dbid=db_id(@dbname)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
最后执行exec p_killspid 'YXDABD_ICD10'
RESTORE DATABASE YXDABD_ICD10
FROM DISK ='E:\YXDABD_ICD10.BAK'
WITH
MOVE 'YXDABD_ICD10_Data'
TO 'E:\mssql2005\MSSQL.1\MSSQL\Data\YXDABD_ICD10.mdf',
MOVE 'YXDABD_ICD10_log'
TO 'E:\mssql2005\MSSQL.1\MSSQL\Data\YXDABD_ICD10.ldf'
23% restored。
35% restored。
41% restored。
52% restored。
64% restored。
70% restored。
82% restored。
94% restored。
100% restored。
已处理 136 页,这些页属于数据库 'csdnTemp' 的文件 'csdnTemp_Data'(位于文件 1 上)。
已处理 1 页,这些页属于数据库 'csdnTemp' 的文件 'csdnTemp_Log'(位于文件 1 上)。
RESTORE DATABASE 操作成功地处理了 137 页,花费了 0.045 秒(24.780 MB/秒)。我的测试...