我遇到了一个奇怪的批处理文件问题,如下所示。我创建了一个 .bat 文件,该文件调用如下所示的存储过程
sqlcmd -Q "EXECUTE [dbo].[ABC]" -S "XYZ\INST5,1450" -U %USERNAME% -P %PASSWORD% -d %DBName%
该命令工作正常。此 SP 将成功向某些用户发送邮件,这是预期的行为。
但是,如果我用这样的实际值替换上述命令中使用的变量
sqlcmd -Q "EXECUTE [dbo].[ABC]" -S "XYZ\INST5,1450" -U ABC -P LMN -d DATABASE
并运行批处理文件,然后我收到一条邮件队列消息,并且邮件永远不会发送。
现在,如果我再次运行相同的批处理文件,那么邮件就会被发送。长话短说,只有在运行 .bat 文件两次后才会发送邮件。
SP 绝对没有问题,因为它目前已在被安排为 SQL 作业的生产环境中进行了全面测试并成功运行。
如果将变量替换为实际值,请提出为什么此 .bat 文件第一次失败的原因