我正面临一个批处理文件的奇怪问题,如下所示。 我创建了一个.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文件第一次失败