我已将数据库A1234
的备份创建为文件A1234.bak
。
我想在两个不同的数据库(例如同一sql服务器实例中的D1和D2)中还原此A1234.bak
。
我希望两个数据库中的数据相同。
我尝试过
RESTORE DATABASE D1
FROM disk='C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Backup\A1234.bak'
这适用于D1。当我尝试使用D2时,它会提示错误,表明A1234已创建并且无法被覆盖。
当我在C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\
位置看到时,有数据库A1234.mdf和A1234_log.ldf文件,没有D1。
而在SSMS中,它显示D1而不显示A1234。
所以我想数据库A1234只是指向D1。
如何仅使用.bak文件恢复我想要的任何数据库中的架构和数据。
我看过一些WITH MOVE
命令,但听不懂
编辑:也尝试过这样
RESTORE DATABASE D1 FROM DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Backup\A1234.bak'
WITH MOVE 'A1234' TO 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\D1.mdf',
MOVE 'A1234_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\D1_log.ldf',
GO