如TEST1数据库,数据文件存储路径在D;\TEST1 下而现在要将TEST1 备份然后还原到 新数据库  TEST2 下情况一 : TEST2现不存在   情况二 : TEST2已经存在  存储路径在 E:\TEST2 下各位高手请赐教,谢谢~

解决方案 »

  1.   

    不使用企业管理器操作,要使用SQL语句~
      

  2.   

    --备份
    BACKUP DATABASE [TEST1] TO  DISK = N'D:\TEST1.bak ' WITH NOFORMAT, NOINIT,  NAME = N'COMMON_CN-完整 数据库 备份', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
    GO--如果没有创建
    IF DB_ID('TEST2') IS NULL
    CREATE DATABASE TEST2--还原
    RESTORE DATABASE [TEST2] FROM
    DISK = N'D:\TEST1.bak' WITH  FILE = 1,
    MOVE N'TEST2_Data' TO N'E:\TEST2.mdf',
    MOVE N'TEST2_Log' TO N'E:\TEST2.ldf',
    NOUNLOAD,  REPLACE,  STATS = 10
    GO
      

  3.   

    服务器: 消息 3234,级别 16,状态 2,行 1
    逻辑文件 'TEST2_Data' 不是数据库 'TEST2' 的一部分。请使用 RESTORE FILELISTONLY 来列出逻辑文件名。
    服务器: 消息 3013,级别 16,状态 1,行 1
    RESTORE DATABASE 操作异常终止。
    GG  ~  不能啊~
      

  4.   

    创建数据库的代码没有写好--创建数据库
    IF DB_ID('TEST2') IS NULL
    BEGIN
    create database TEST2
    on primary
    (name = 'TEST2_data',
    filename = 'E:\TEST2.mdf',
    size = 3mb,
    filegrowth = 1mb)
    log on
    (name = 'TEST2_log',
    filename = 'E:\TEST2.ldf',
    size = 1mb,
    maxsize = 5mb,
    filegrowth = 1%)
    go
    END
      

  5.   

    注意数据库的逻辑名 'TEST2_data' 'TEST2_log' ,也可以自己换成别的