ECHO ON
set backupscript=c:\path\backup.sql
set restorescript=c:\path\restore.sql
set backupstore=\\server\share
set restorestore=\\server\share
set backupserver=server\inst
set restoreserver=server\inst
sqlcmd -E -S%backupserver% -i "%backupscript%"
copy "%backupstore%\*" %restorestore%
sqlcmd -E -S%restoreserver% -i "%restorescript%"
维护计划中没有“恢复数据库任务”。您将不得不使用
Execute T-SQL Statement Task
. 在该任务中,在您的 T-SQL 语句中添加一个恢复脚本。简单的例子:然后为每周执行创建一个时间表。希望这是业务需要的,因为您正在覆盖数据库。
正如乔恩所说,维护计划中没有任何内容可以做到这一点。
我假设您正在寻找复制数据库的当前状态以用于暂存或开发环境,而不是寻找诸如日志传送之类的东西。如果是这样,您可以在任务调度程序中使用批处理和 t-sql 执行类似的操作:
维护计划中没有任何内容可以做到这一点。
但是,事务日志传送是内置的/受支持的,它提供了一种在两个位置保存数据库副本的方法。它在构建时考虑到了灾难恢复,但没有理由不能将其用于您的目的(除了使用日志传送所固有的要求和限制)。它甚至可能比每周进行一次完全恢复更有效率。
如果 Log Shipping 不合适,您要么需要找到其他人的解决方案,要么自己动手。您还可以查看诸如复制(特别是快照复制)之类的内置解决方案,但这对于您的需求可能过于复杂。