sql-server - SQL Server 代理作业步骤 - 如果存在不评估
问题描述
我已经在 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 LIKE 'VPN%' AND timestamp > DATEADD(day,-1,CURRENT_TIMESTAMP))开始发送电子邮件(不会费心显示完整的命令,因为它们的工作原理如下所述)END
就个人而言,当我做这种事情时,我喜欢检索记录数而不是使用 IF EXISTS ...我经常在电子邮件的正文或主题中使用记录。
推荐阅读
- reactjs - mui-datatables 隐藏列标题
- python - 使用 Python 从页面中删除 HTML 标记内容
- postgresql - 如何通过 sqlalchemy 在 Postgresql 中记录时间
- python-3.x - 如何从 Camelot 获取表格对象(单元格)列表
- excel - 从 VBA Excel 中删除 OLEObjects 复选框
- linux - KCacheGrind 不会打开 callgrind 文件
- amazon-web-services - AWS Amplify(角度),构建时文件位置错误
- android - 如何让锚链接在 ScrollView 内的 WebView 中工作
- c# - 在文本框中显示产品
- c - C ++ scanf错误(保存时访问冲突)