通过T-SQL查询在2个不同的数据库中还原.bak文件

时间:2019-05-21 07:30:52

标签: sql-server

我已将数据库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

0 个答案:

没有答案