我有一个 ELMAH 数据库,我想使用以下脚本进行还原:
RESTORE DATABASE [Elmah]
FROM DISK = N'E:\Elmah_backup_2012_11_02_030003_1700702.bak'
WITH FILE = 1,
MOVE N'Elmah' TO N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\Elmah.mdf',
MOVE N'Elmah_log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\Elmah.ldf',
NOUNLOAD, STATS = 10
GO
即使我不包括WITH REPLACE
每次执行此语句时,它都会恢复现有数据库。
在此操作之前,我将始终删除所有数据库,并且我不希望此代码在生产环境中意外恢复数据库。
如何更改此代码以使其永远不会覆盖现有数据库?
我实际上是通过 SMO 对象执行此操作,但原理和结果是相同的,因此我希望将其简化为仅必要的 TSQL,希望我可以将该信息概括为需要在适当的 SMO.Restore 上设置的内容目的。