Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql SSIS帮助:如果在查询中发现无效记录,如何发送电子邮件_Sql_Ssis - Fatal编程技术网

Sql SSIS帮助:如果在查询中发现无效记录,如何发送电子邮件

Sql SSIS帮助:如果在查询中发现无效记录,如何发送电子邮件,sql,ssis,Sql,Ssis,我想在每周运行的SSIS包中使用以下查询。此查询所做的只是截断table PlanFinder.InvalidAwps并用新的无效记录加载它。现在,如果在InvalidWPS表中发现任何无效记录,我如何在SSIS包中使用此查询发送电子邮件?我可以使用executesql任务,但不知道如果在InvalidAwps表中发现任何无效记录,包将如何发送电子邮件 truncate table [PlanFinder].[InvalidAwps] go insert into [PlanFinder]

我想在每周运行的SSIS包中使用以下查询。此查询所做的只是截断table PlanFinder.InvalidAwps并用新的无效记录加载它。现在,如果在InvalidWPS表中发现任何无效记录,我如何在SSIS包中使用此查询发送电子邮件?我可以使用executesql任务,但不知道如果在InvalidAwps表中发现任何无效记录,包将如何发送电子邮件

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循环,如中所示