使用多个 BAK 文件还原 SQL Server 数据库的脚本

问题描述

我正在尝试编写一个脚本,以便每天在 sql Server 2019 中使用位于一个文件夹中的多个 BAK 文件动态执行“还原数据库”。

我会先进行手动完整备份,此任务将被安排每天运行。

计划是按顺序浏览每个 BAK 文件(位于同一文件夹中)(例如:04 --> 12)。

将有另一个 Python 脚本会清除旧文件,因此我只专注于使用位于此文件夹中的 BAK 文件执行还原数据库

最好的方法是什么?

我附上了一张包含所有 BAK 文件的屏幕截图。

enter image description here

我这里有一些 T-sql 代码(我从 other thread 复制的),但我不确定如何按顺序循环遍历每个 BAK 文件

而且我不确定是否必须处理此处列出的 mdf 和 ldf 文件

RESTORE DATABASE [Test] FROM  disK ='\\Folder\LOG...04.bak'
WITH
--what ever options... but likely a file move
MOVE 'data_file_1' TO 'E:\somefolder\data.mdf',MOVE 'db_log' TO 'E:\somefolder\log.ldf',REPLACE,--overwrites the database
RECOVERY --sets the DB to READ/WRITE. Use norECOVERY if you need to restore 
logs / differentials
GO

RESTORE LOG Test
   FROM '\\Folder\Log...04.bak' --assuming this is a log
   WITH FILE = 1,--this is the first log
   WITH norECOVERY;  --keep in norecovery to restore other logs...
GO

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)