我想在不创建.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
答案 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的联合创始人