在批处理文件中添加 Hour of backup SQL 服务器命令

Add the Hour of backup SQL Server command in Batchfile

我想通过 Windows 批处理文件每小时备份 SQL 服务器中的 1 个数据库。

小时应该在文件名中处理。

sqlcmd -S SRV01 -E -Q "BACKUP DATABASE [databasename] TO DISK = N'C:\Backup\databasename\hourly_%HOUR%.BAK'"

如何解决这个问题?

我建议你看看那篇文章Multiple methods for scheduling a SQL Server backup automatically。在那篇文章中,您可以了解如何使用小部件来设置要保存备份的位置以及计划何时初始化。

要获取小时数,您可以使用非常适合此任务的环境变量 %time%

您需要从 %time% 中提取小时,因为它的格式为 hh:mm:ss,cs

for /f "tokens=1 delims=:" %%T in ("%time%") do set "hour=%%T"

因此 SQL 服务器的最终命令(假设您是 运行 同一个批处理文件中的两个命令)将是

sqlcmd -S SRV01 -E -Q "BACKUP DATABASE [databasename] TO DISK = N'C:\Backup\databasename\hourly_%HOUR%.BAK'"