通过SSIS中的发送邮件任务将记录作为网络链接发送?

时间:2010-09-02 19:42:50

标签: ssis

我有一个包含两列和两条记录的表,如下所示。

TypeOfReport链接

InvalidRecords http://ReportInvalid

MissingRecords http://ReportMissing


我有一个带有执行sql任务的包,从上表中选择*,选择了完整的结果集并创建了一个对象变量,它运行良好。但现在当我用发送邮件任务连接它时,我想发送电子邮件,如

主题:报告InvalidRecords和MissingRecords

MessageText:报告的链接:http://ReportInvalid

http://ReportMissing

somebone可以帮助我。

注意:我尝试创建用户和对象变量但如果我在表中只有一条记录则很好。我尝试创建2个用户和2个对象变量,但没有工作。

由于

1 个答案:

答案 0 :(得分:0)

您的执行SQL任务正在返回多行,您可以将结果转到对象类型的变量。现在,将多行数据中的值转换为SSIS中的变量值可能具有挑战性,但这并非不可能。但是,根据您的情况,您可能希望更改SQL语句以返回一行。

首先创建两个变量,一个用于无效记录链接,另一个用于缺失记录链接。编辑执行SQL任务并使用以下内容替换SQL语句:

SELECT MAX(CASE TypeOfReport WHEN 'InvalidRecords'
               THEN links ELSE NULL END) AS InvalidRecords,
       MAX(CASE TypeOfReport WHEN 'MissingRecords'
               THEN links ELSE NULL END) AS MissingRecords
FROM mytable

此查询将返回一行,其中包含两列,每列一列。这称为数据透视表(您可以使用PIVOT子句生成相同的结果。)最大的优势在于有一行。

另外,将ResultSet属性更改为Single row。

选择“结果集”选项卡,然后将两个项目添加到列表中。第一行的结果名称应为0,变量名称的InvalidRecords变量应为0。第二行的结果名称应为1,变量名称的MissingRecords变量应为1。这应该将您的链接值变为变量并为您的电子邮件任务做好准备。