我有以下命令在 Windows 中备份 SQL 数据库,现在我们需要在其中设置异常处理代码,以便在出现任何错误时触发电子邮件警报
"sqlcmd -S $serverip -U $dbuser -P $dbpasswd -d $db -Q "BACKU DATABASE [$db] TO DISK='C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup\$db.$date.bak'" -b >> output_test.log"
请在这方面帮助我。
答案1
当您指定该-b
选项时,您应该得到返回值为 1 的 ERRORLEVEL,尽管您可能也想为“-V”指定一个值。
您需要做的就是查询 ERRORLEVEL 并确定它是否大于 0。如果是,则表示发生了错误。
我已经很久没有对 ERRORLEVEL 做过任何操作了,但我记得
错误级别数
仅当 Cmd.exe 运行的前一个程序返回等于或大于 Number 的退出代码时,才指定为真条件。
因此你需要检查它是否为 1 (或更大)
IF ERRORLEVEL 1 GOTO errorHandling
REMerrolevel == 0
:errorHandling
REM errorlevel is 1 or greater