如何从表中将记录(这是一个weblink)发送到SSIS包中的变量值,并通过电子邮件发送该weblink?

时间:2010-09-01 13:01:59

标签: sql ssis

我的表名为Table1,列为col1,col2为col1,报表为weblink,col2为报表名称。现在,我有一个包含变量var1和var2的包,它们应分别从table1获取col1和col2值并通过电子邮件发送。如果weblink在表中更新,则包应发送更新的链接。我知道它的相反方式,但试图做这样的事情。

感谢你们的任何帮助。

由于

1 个答案:

答案 0 :(得分:0)

有几种方法可以做到这一点。您可以根据处理一行还是多行来尝试以下操作之一。

单行解决方案
如果您正在运行SSIS包以便它将处理表中的一行且只有一行,则可以使用“执行SQL任务”从表中获取值。首先添加两个变量

在任务中,指定与SQL Server的连接并输入这样的SQL语句。

SELECT col1, col2
FROM Table1
WHERE <your condition to retrieve one row>

此外,在“常规”选项卡上,将“ResultSet”值设置为“单行”。

在“结果集”选项卡上,添加两个元素。第一行应为结果名称0,变量名称为Var1。第二行将是结果名称1,变量名称Var2。

当任务运行时,SQL语句的结果将存储到变量中。

多行解决方案
如果SSIS包必须返回多行,那么您需要一种不同的方法。首先,您需要创建另一个Object数据类型的变量。 SQL结果将保存到此变量中。

您将拥有一个与上面类似的执行SQL任务。但是,您的SQL语句应返回要处理的所有行。 ResultSet属性应设置为完整结果集。在“结果集”选项卡上,应该有一个结果集,其中0表示结果名称,新对象变量作为变量名称。关闭“执行SQL任务”编辑器。

添加Foreach循环容器。编辑容器并选择“收集”选项卡。将Enumerator属性设置为Foreach ADO枚举器。在Enumerator配置下,将对象变量设置为ADO对象源变量。

在“变量映射”选项卡上,添加到行。第一行将具有Variable Var1和Index 0,第二行将具有Variable Var2和Index 1. Foreach循环容器将处理结果集中的每个并将列值分配给您的变量。您可以在容器中添加任何任务,它们将对结果集中的每一行运行一次。