数据库名字叫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 正在异常终止。

解决方案 »

  1.   

    'E:\mssql2005\MSSQL.1\MSSQL\Data\YXDABD_ICD10.mdf'
    'E:\mssql2005\MSSQL.1\MSSQL\Data\YXDABD_ICD10.ldf'上述两文件是否存在?
      

  2.   

    RESTORE FILELISTONLY 来列出逻辑文件名RESTORE FILELISTONLY YXDABD_ICD10 看看逻辑文件,
    详细看帮助的 restore filelistonly 
      

  3.   

    RESTORE FILELISTONLY 
    FROM DISK ='E:\YXDABD_ICD10.BAK'看一下 LogicalName
      

  4.   


     E:\mssql2005\MSSQL.1\MSSQL\Data\ 该文件的物理路径是不存在?
      

  5.   

    你这样的RESTORE还原本身操作肯定有问题...按我说的步骤试试首先RESTORE FILELISTONLY 
    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'
      

  6.   

    11% restored。
    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/秒)。我的测试...