Sql SSIS帮助:如果在查询中发现无效记录,如何发送电子邮件
我想在每周运行的SSIS包中使用以下查询。此查询所做的只是截断table PlanFinder.InvalidAwps并用新的无效记录加载它。现在,如果在InvalidWPS表中发现任何无效记录,我如何在SSIS包中使用此查询发送电子邮件?我可以使用executesql任务,但不知道如果在InvalidAwps表中发现任何无效记录,包将如何发送电子邮件Sql SSIS帮助:如果在查询中发现无效记录,如何发送电子邮件,sql,ssis,Sql,Ssis,我想在每周运行的SSIS包中使用以下查询。此查询所做的只是截断table PlanFinder.InvalidAwps并用新的无效记录加载它。现在,如果在InvalidWPS表中发现任何无效记录,我如何在SSIS包中使用此查询发送电子邮件?我可以使用executesql任务,但不知道如果在InvalidAwps表中发现任何无效记录,包将如何发送电子邮件 truncate table [PlanFinder].[InvalidAwps] go insert into [PlanFinder]
truncate table [PlanFinder].[InvalidAwps]
go
insert into [PlanFinder].[InvalidAwps]
(Ndc, AwpUnitCost)
SELECT DISTINCT P.Ndc Ndc, A.Price AwpUnitCost
FROM
PlanFinder.PlanFinder.HpmsFormulary P
LEFT JOIN (SELECT Ndc, Price FROM MHSQL01D.Drug.FdbPricing.vNdcPrices
WHERE PriceTypeCode = '01' AND CurrentFlag = 1) A
ON P.Ndc = A.Ndc
WHERE (A.Ndc IS NULL OR A.Price <= 0 OR A.Price IS NULL)
AND p.Ndc IS NOT NULL
根据您的需求,您将截断现有表,然后使用逻辑将新记录插入表中 我不确定您是如何将a记录视为无效记录的。对于这个任务,我们考虑无效记录作为记录,插入将失败。
如果出现故障,我们需要发送电子邮件。在控制流中,将逻辑代码放在一个SQL任务中,在该任务失败时,使用发送电子邮件任务和所需的电子邮件(派生或变量)。对于自定义日志条目错误,我也会做类似的事情,只需在包的末尾让任务收集错误并将其转储到文本文件,然后发送文件 假设要包括无效记录的列表,可以使用数据流任务将行从InvalidWPS导出到平面文件示例,然后使用发送电子邮件任务将文件作为附件发送。如果数据流任务使用行计数组件将计数存储到变量中,则可以将其用作在计数为零时不发送电子邮件的条件 或者,如果您想为每个记录发送单独的电子邮件,可以使用for each循环,如中所示