我有一个包含两列和两条记录的表,如下所示。
TypeOfReport链接
InvalidRecords http://ReportInvalid
MissingRecords http://ReportMissing
我有一个带有执行sql任务的包,从上表中选择*,选择了完整的结果集并创建了一个对象变量,它运行良好。但现在当我用发送邮件任务连接它时,我想发送电子邮件,如
主题:报告InvalidRecords和MissingRecords
MessageText:报告的链接:http://ReportInvalid
somebone可以帮助我。
注意:我尝试创建用户和对象变量但如果我在表中只有一条记录则很好。我尝试创建2个用户和2个对象变量,但没有工作。
由于
答案 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。这应该将您的链接值变为变量并为您的电子邮件任务做好准备。