sql - 基于查询结果的 SSIS 作业到电子邮件
问题描述
我有一个返回 4 列的查询: DATE QTY1 QTY2 MATCH
如果两个数量匹配,则 MATCH 列将为 'Y',如果不匹配,则为 'N'
我试图弄清楚如何让 SSIS 作业每天早上按计划运行,当它在 MATCH 列中获得“N”时让我通过电子邮件发送给我。
我在 SSIS 中尝试了一些不同的东西,例如条件拆分,但我是 SSIS 的新手,不知道如何实现这一点。有任何想法吗?还是有其他方法可以解决这个问题?
解决方案
看起来像是sp_send_dbmail的工作它可能已经在您的服务器上设置好了,请与您的 DBA 讨论如何访问它。
以下查询可以直接在 SQL 代理作业步骤中使用,也可以在 SSIS 中的执行 SQL 任务中使用
我们测试是否满足条件(如果存在),如果满足,那么我们将发送一封电子邮件。我们将把查询结果直接内联到电子邮件中,这样您就可以看到满足条件以及所发生情况的详细信息
IF EXISTS
(
SELECT * FROM dbo.QuerySource AS QS WHERE QS = 'N'
)
BEGIN
EXECUTE msdb.dbo.sp_send_dbmail @recipients = 'me@domain.com'
, @subject = 'Mismatch in data'
, @body = 'Bad things happened today'
, @query = 'SELECT * FROM dbo.QuerySource AS QS WHERE QS = ''N''';
END
推荐阅读
- selenium - 我们如何点击 Selenium Webdriver 下的“Href”链接?
- r - 如何在 R 中列出和估计所有可能的成对比较
- amazon-web-services - 自动更新 athena 分区 - MSCK Repair
- highcharts - 如果我在 highcharts 中有大于 1000 的数据,我想显示 1k
- linked-list - 在我的 Rust 单链表中实现 .pop() 的更好方法是什么?
- dart - Flutter / googleapis / Gmail API 发送邮件返回 400 Bad Request
- c - Ansi C 运行时性能全局与局部变量
- azure - Azure 流分析作业对于小数据来说很昂贵?
- firebase - Cloud Firestore 是否有读取限制
- css - IE 和 Edge 不尊重文本转换