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 如何将表中的记录(即Web链接)发送到SSIS包中变量的值,并通过电子邮件发送该Web链接?_Sql_Ssis - Fatal编程技术网

Sql 如何将表中的记录(即Web链接)发送到SSIS包中变量的值,并通过电子邮件发送该Web链接?

Sql 如何将表中的记录(即Web链接)发送到SSIS包中变量的值,并通过电子邮件发送该Web链接?,sql,ssis,Sql,Ssis,我有一个名为Table1的表,其中有列,col1和col2,col1有报告的weblinks,col2是报告的名称。现在,我有一个包含变量var1和var2的包,它应该分别从表1中获取col1和col2值,并通过电子邮件发送。如果表中的weblink得到更新,则包应发送更新的链接。我知道事情的反面,但我试着做这样的事情 SELECT col1, col2 FROM Table1 WHERE <your condition to retrieve one row> 感谢你们的帮助 谢

我有一个名为Table1的表,其中有列,col1和col2,col1有报告的weblinks,col2是报告的名称。现在,我有一个包含变量var1和var2的包,它应该分别从表1中获取col1和col2值,并通过电子邮件发送。如果表中的weblink得到更新,则包应发送更新的链接。我知道事情的反面,但我试着做这样的事情

SELECT col1, col2
FROM Table1
WHERE <your condition to retrieve one row>
感谢你们的帮助


谢谢

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

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

在任务中,指定与SQL Server的连接,并输入如下SQL语句

SELECT col1, col2
FROM Table1
WHERE <your condition to retrieve one row>
选择col1、col2
来自表1
哪里
另外,在“常规”选项卡上,将“结果集”值设置为“单行”

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

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

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

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

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


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

非常感谢。答案应该是这样的。谢谢只有一个问题,我如何看到变量的值,我在变量窗口中看不到它?您可以通过设置断点在运行时查看变量值。例如,如果希望在Foreach循环容器的每次迭代中查看值,可以在容器上设置断点。在容器上单击鼠标右键,然后选择“编辑断点”。选中相应事件的启用框,在本例中为“在循环的每次迭代开始时中断”。启动包,当出现中断时,在“局部变量”窗口中查找变量以查看当前值。单击开始按钮继续处理。谢谢bob。非常感谢您在SQL方面的帮助和专业知识。非常感谢。