Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 将数据库还原到新位置_Sql Server_Database Restore - Fatal编程技术网

Sql server 将数据库还原到新位置

Sql server 将数据库还原到新位置,sql-server,database-restore,Sql Server,Database Restore,虽然我经常使用SQL Server,但我不做那么多的数据库备份。我成功地将backup.bak文件还原到原始数据库,比如Database1 但是,我还想从同一个备份文件创建一个新的数据库Database2。通过“还原数据库”-常规-源-我在设备中选择了备份文件,然后将目标组中的数据库名称更改为Database2 但是,它在给出正在使用的日志文件的消息时出错 注意:当我在家里做这件事时,它会自动创建新的命名日志文件,但在工作中它不会——只是错误 这仅仅是进入文件页面并手动重命名“数据”行和“日志”

虽然我经常使用SQL Server,但我不做那么多的数据库备份。我成功地将
backup.bak
文件还原到原始数据库,比如
Database1

但是,我还想从同一个备份文件创建一个新的数据库
Database2
。通过“还原数据库”-常规-源-我在设备中选择了备份文件,然后将目标组中的数据库名称更改为
Database2

但是,它在给出正在使用的日志文件的消息时出错

注意:当我在家里做这件事时,它会自动创建新的命名日志文件,但在工作中它不会——只是错误

这仅仅是进入文件页面并手动重命名“数据”行和“日志”文件以匹配我的新数据库名称的一种情况吗
Database2

我必须在选项页面中执行任何操作吗

创建数据库的新副本时,我不希望对原始数据库
Database1
造成任何更改


谢谢

您可以像这样使用移动:

USE [master]
GO

RESTORE DATABASE [Database2] FROM DISK = 'c:\mssql\backup\Database1_Full.bak'
WITH CHECKSUM,
MOVE 'Database1_Data' TO 'c:\mssql\data\Database2_Data.mdf',
MOVE 'Database1_Log' TO 'c:\mssql\Database2_Log.ldf',
RECOVERY, STATS = 10;
在服务运行时,您将无法“意外”对SQL Server数据/日志文件执行任何操作,除非您强制执行该操作;当它们正在使用时,您不能写入/删除它们。正如您在文章中所说,您需要为数据文件和日志文件指定不同的文件名,因为它们不能与其他副本相同。