我在SQL Server 2016中设置了一个作业来监视表,并通过电子邮件通知是否存在某些数据。
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。
然后我认为发送电子邮件已损坏,因此我将其放在开始/结束之外并进行测试。
if exists (SELECT 1 ...
BEGIN
END
send email
它奏效了,我收到了一封电子邮件。
谁能看到我可能出错的地方?
删除引号:
如果存在(从 NPS_Logging.dbo.accounting_data 中选择 1,其中NP_Policy_Name像"VPN%"和时间戳> DATEADD(DAY,-1,CURRENT_TIMESTAMP(( 开始 发送电子邮件(不会打扰显示完整命令,因为它们如下所述( 结束
就个人而言,当我做这种事情时,我喜欢检索记录计数而不是使用 IF EXIST...我经常在电子邮件的正文或主题中使用记录。