在没有.bak的同一服务器上克隆SQL Server数据库

时间:2016-05-04 10:54:48

标签: sql-server database

我想在不创建.bak文件的情况下复制和重命名SQL Server数据库。可能吗?

例如它的作品,但使用.bak文件:

DECLARE @backupPath nvarchar(400);
DECLARE @sourceDb nvarchar(50);
DECLARE @sourceDb_log nvarchar(50);
DECLARE @destDb nvarchar(50);
DECLARE @destMdf nvarchar(100);
DECLARE @destLdf nvarchar(100);
DECLARE @sqlServerDbFolder nvarchar(100);

SET @sourceDb = 'db1'
SET @sourceDb_log = @sourceDb + '_log'
SET @backupPath = 'E:\tmp\' + sourceDb + '.bak' 
SET @sqlServerDbFolder = 'E:\DB SQL\MSSQL11.MSSQLSERVER\MSSQL\DATA\'
SET @destDb = 'db2'
SET @destMdf = @sqlServerDbFolder + @destDb + '.mdf'
SET @destLdf = @sqlServerDbFolder + @destDb + '_log' + '.ldf'

BACKUP DATABASE @sourceDb TO DISK = @backupPath

RESTORE DATABASE @destDb FROM DISK = @backupPath
WITH REPLACE,
   MOVE @sourceDb     TO @destMdf,
   MOVE @sourceDb_log TO @destLdf

2 个答案:

答案 0 :(得分:0)

Microsoft SQL Server Management Studio提供此功能(未包含在Express版中)。您可以右键单击数据库选择任务,然后尝试复制数据库

您可以查看此链接以供参考。 https://msdn.microsoft.com/en-us/library/ms188664.aspx

答案 1 :(得分:0)

另一种选择是简单地创建其他sQL Server容器实例,每个实例运行相同的数据库。

Windocks支持所有版本的SQL Server 2008,在Windows 8,10,Server 2012和2016上。

披露:我是WinDocks的联合创始人