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...我经常在电子邮件的正文或主题中使用记录。
我在 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...我经常在电子邮件的正文或主题中使用记录。