SQL 服务器代理作业步骤 - 如果存在则不评估

SQL Server agent job step - if exists not evaluating

我在 SQL Server 2016 中设置了一个作业来监控 table 并在某些数据存在时通过电子邮件通知。

IF EXISTS (SELECT 1 FROM NPS_Logging.dbo.accounting_data WHERE "NP_Policy_Name" LIKE 'VPN%' AND "timestamp" > DATEADD(day,-1,CURRENT_TIMESTAMP))
BEGIN
 send email (won't bother showing full commands as they work as mentioned below)
END

当我测试作业时,我没有收到电子邮件。

我认为 if exists 没有评估(我知道现在应该)所以我手动 运行 SELECT 1... 查询并返回 1.

然后我以为发送邮件坏了所以我把它放在begin/end外面测试了。

if exists (SELECT 1 ...
BEGIN
END
send email

成功了,我收到了一封电子邮件。

谁能看出我哪里出错了?

删除引号:

IF EXISTS (SELECT 1 FROM NPS_Logging.dbo.accounting_data WHERE NP_Policy_Name LIKE 'VPN%' AND timestamp > DATEADD(day,-1,CURRENT_TIMESTAMP)) 开始 发送电子邮件(不会显示完整的命令,因为它们的工作方式如下所述) 结束

就我个人而言,当我做这类事情时,我喜欢检索记录数而不是使用 IF EXISTS...我经常在电子邮件的正文或主题中使用记录。