2010-09-02 52 views
0

我有一个两列和两个记录如下表。通过SSIS中的发送邮件任务将记录作为网页链接发送?

TypeOfReport链接

InvalidRecords http://ReportInvalid

MissingRecords http://ReportMissing


我有从上表中,选择的全结果集和创建的对象变量执行sql任务选择*包,它运作良好。但现在,当我将其与发送邮件任务连接,我想发送电子邮件一样

主题:报告在InvalidRecords和MissingRecords

MessageText中:为报告链接:http://ReportInvalid

http://ReportMissing

灿somebone帮助我。

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

感谢

回答

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属性更改为单行。

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

+0

再次感谢。非常好的答案。 – User7354632781 2010-09-03 12:42:13