我想复制并重命名SQL Server数据库,而不创建.bak文件。有可能吗?
例如,它可以工作,但使用.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发布于 2016-06-17 21:05:24
Microsoft SQL Server Management Studio提供此功能( Express edition中未提供)。您可以右键单击数据库,选择Tasks,然后尝试Copy 。
您可以查看此链接以供参考。https://msdn.microsoft.com/en-us/library/ms188664.aspx
发布于 2017-04-14 01:26:50
另一种选择是简单地创建额外的sQL服务器容器实例,每个实例运行相同的数据库。
Windocks支持所有版本的SQL Server 2008,包括Windows 8、10、Server 2012和2016。
披露:我是WinDocks的联合创始人
https://stackoverflow.com/questions/37025718
复制相似问题