USE master
go
\\创建备份设备:disk:设备类型;cwbase1bf:逻辑设备名;D:\a-zkc\cwbase1bf.dup:物理设备名;
sp_addumpdevice 'disk', 'cwbase1bf', 'D:\a-zkc\cwbase1bf.dup'
go
\\创建备份:cwbase1:要备份的数据库名称;cwbase1bf:完成备份的逻辑设备名
backup database cwbase1 to cwbase1bf
with init
/*--------------SQL SERVER2000数据库恢复语句----------------------*/
\\从备份文件中查看所备份的设备文件名cwdata?.dat
RESTORE FILELISTONLY 
   FROM DISK = 'F:\zkc-bf\cwbase1zkc.dup'
/*----恢复;注:要恢复的数据库名'cwbase?',是根据上面的语句的执行结果定;move后的设备名一定要和上面语执行的结果(cwdata?.dat\cwlog?.dat)一致,to后面为你要恢复的数据库的目录和设备名,可执行:select filename from sysdatabases where name='cwbase?'查看。---*/
RESTORE DATABASE cwbase2
   FROM DISK = 'F:\zkc-bf\cwbase1zkc.dup'
   WITH MOVE 'cwdata1' TO 'F:\zkc-bf\cwdata2.dat',
        MOVE 'cwlog1' TO 'F:\zkc-bf\cwlog2.dat'
   replace
备份时的:with init参数和恢复时的:move、relpac不是太明白

解决方案 »

  1.   

    INIT指定应重写所有备份集,但是保留媒体头。如果指定了 INIT,将重写那个设备上的所有现有的备份集数据。
    当遇到以下几种情况之一时不重写备份媒体: 媒体上的备份设置没有全部过期。有关更多信息,请参见 EXPIREDATE 和 RETAINDAYS 选项。如果 BACKUP 语句给出了备份集名,该备份集名与备份媒体上的名称不匹配。有关更多信息,请参见 NAME 子句。 
    使用 SKIP 选项替代这些检查。有关使用 SKIP、NOSKIP、INIT 和 NOINIT 时的相互作用关系的更多信息,请参见注释部分。说明  如果备份媒体有密码保护,SQL Server 将不写入媒体,除非提供媒体密码。SKIP 选项不替代此检查。只有通过格式化才能重写受密码保护的媒体。有关更多信息,请参见 FORMAT 选项。MOVE 'logical_file_name' TO 'operating_system_file_name'指定应将给定的 logical_file_name 移到 operating_system_file_name。默认情况下,logical_file_name 将还原到其原始位置。如果使用 RESTORE 语句将数据库复制到相同或不同的服务器上,则可能需要使用 MOVE 选项重新定位数据库文件以避免与现有文件冲突。可以在不同的 MOVE 语句中指定数据库内的每个逻辑文件。 
    REPLACE指定即使存在另一个具有相同名称的数据库,SQL Server 也应该创建指定的数据库及其相关文件。在这种情况下将删除现有的数据库。如果没有指定 REPLACE 选项,则将进行安全检查以防止意外重写其它数据库。
      

  2.   

    MOVE 'logical_file_name' TO 'operating_system_file_name'指定应将给定的 logical_file_name 移到 operating_system_file_name。默认情况下,logical_file_name 将还原到其原始位置。如果使用 RESTORE 语句将数据库复制到相同或不同的服务器上,则可能需要使用 MOVE 选项重新定位数据库文件以避免与现有文件冲突。可以在不同的 MOVE 语句中指定数据库内的每个逻辑文件。 
      

  3.   

    REPLACE指定即使存在另一个具有相同名称的数据库,SQL Server 也应该创建指定的数据库及其相关文件。在这种情况下将删除现有的数据库。如果没有指定 REPLACE 选项,则将进行安全检查以防止意外重写其它数据库。安全检查可确保在以下情况中,RESTORE DATABASE 语句不会将数据库还原到当前服务器: 在 RESTORE 语句中命名的数据库已经在当前服务器上存在,并且
    该数据库名称与备份集中记录的数据库名称不同。 
    若无法验证现有文件是否属于正在还原的数据库,则 REPLACE 也允许 RESTORE 重写该文件。RESTORE通常拒绝重写已存在的文件。