目标是想通过备份再恢复来实现复制数据库,但如果直接通过图形界面操作恢复,即便修改了恢复的文件位置和文件名,仍然会直接恢复到源数据库上,轻则导致出错,重则覆盖数据。
目前发现通过直接执行语句可以实现将备份恢复到新数据库,而不影响现有数据库。
第一步:备份现有数据库
BACKUP DATABASE X TO DISK = 'D:\X.bak';
GO
第一步:查询备份文件中的数据库文件、日志文件的逻辑名称
RESTORE FILELISTONLY FROM DISK='D:\X.bak'
第二步:执行恢复
RESTORE DATABASE X_new FROM DISK='D:\X.bak'
WITH
MOVE 'X' TO 'D:\X_new.mdf',
MOVE 'X_log' TO 'D:\X_new_log.ldf'
等待完成即可。
参考:https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2008/ms190447(v=sql.100)