sqlcmd 执行sql 错误日志打印 并继续执行

要在 sqlcmd 中执行SQL脚本时即便遇到错误也能继续执行后续的命令,并同时打印错误日志,可以使用 -b 参数。这个参数使得 sqlcmd 在遇到错误时不退出,而是继续执行下一个批次(batch)。不过,请注意,这并不会改变错误本身的发生,只是允许脚本中的其他命令有机会继续执行。

同时,为了捕捉并记录所有的错误信息,仍然可以使用命令行重定向的方法将错误流与标准输出合并到一个文件中:

 

bash

sqlcmd -S servername -d dbname -U username -P password -b -i input_script.sql > output.txt 2>&1

这里 -b 参数表示在遇到错误时继续执行下一个批次。同样地:

  • > output.txt 会将所有标准输出(包括成功执行的语句结果)重定向到 output.txt 文件中。
  • 2>&1 表示将标准错误输出(即错误信息)也重定向到同一文件中,这样就可以在一个文件中查看到整个脚本执行过程中的所有信息,包括那些导致错误但仍继续执行的批次的错误信息。

请注意,尽管 -b 参数允许错误发生后继续执行,但在逻辑上相互依赖的多个语句之间,如果前一个语句失败导致后续语句无法正确执行,那么即使继续执行也可能产生不可预知的结果。因此,在生产环境中使用此选项时需谨慎考虑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三希

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值