我需要在执行时创建一个脚本。它将备份一个生产数据库(请记住这是一个实时数据库)并将其恢复为开发数据库(如果存在覆盖)
我已尝试此查询但收到错误消息。我需要找到一种方法来实现这一点,而无需使数据库脱机或单用户模式
USE [master]
RESTORE DATABASE [Development] FROM DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Backup\Production.bak'
WITH FILE = 6, MOVE N'Producation' TO N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\Development.mdf',
MOVE N'Production_log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\Development_log.ldf', NOUNLOAD, REPLACE, STATS = 5
Msg 3101,Level 16,State 1,Line 67 由于数据库正在使用,因此无法获得独占访问权限。 Msg 3013,Level 16,State 1,Line 67 RESTORE DATABASE异常终止。
答案 0 :(得分:0)
我意识到我不需要保持在线开发并且可以终止连接。
所以我使用ALTER DATABASE [ALI] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
来解决此错误