Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.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 server 如何使用sql Server Integration Services评估存储在excel列中的sql字符串?_Sql Server_Excel_Ssis - Fatal编程技术网

Sql server 如何使用sql Server Integration Services评估存储在excel列中的sql字符串?

Sql server 如何使用sql Server Integration Services评估存储在excel列中的sql字符串?,sql-server,excel,ssis,Sql Server,Excel,Ssis,我知道如何将数据从excel列插入到表中,我遵循了一个非常基本的教程,使用excel源、数据转换和OLEDB目标 但我的问题要复杂一点,我有大约100个excel文件,其中在E列中存储了一个SQL字符串,该字符串使用=concatenateinsert创建到同一个表中,IfB2>..,C2 使用集成服务,我希望执行每个excel文件E列的值 |A |B |C |D |E | |Juan| 200| 'Activo'| .

我知道如何将数据从excel列插入到表中,我遵循了一个非常基本的教程,使用excel源、数据转换和OLEDB目标

但我的问题要复杂一点,我有大约100个excel文件,其中在E列中存储了一个SQL字符串,该字符串使用=concatenateinsert创建到同一个表中,IfB2>..,C2

使用集成服务,我希望执行每个excel文件E列的值

|A   |B   |C        |D   |E                          |
|Juan| 200| 'Activo'| ...|'insert into sometable ...'

如何实现这一点?

您可能需要确保列E具有标题。在for-each循环容器中,只需提取包含查询的1列并将其存储在字符串变量中。现在,在这个For Each循环容器中,放入一个executesql任务,并使用动态SQL执行查询。需要注意的是,一旦包失败,您需要知道它失败的语句,这样您就不必重复整个过程。如果存在任何虚假值,您的数据库将被轰炸。

您需要使用动态SQL,从每个表中提取columnE并执行E列的用途以及它真正包含的内容?@Steam E列存储一条sql insert语句,该语句使用excel公式´=CONTAINATE´创建。听起来您有一个在excel工作表中的列中完全形成的查询。工作表中是否有多行,每行都有自己的查询?还是每个Excel文件只有一个查询?在这两种情况下,您都可以使用SSIS foreach循环来完成您的目标—通过文件循环、通过文件名提取查询或使用foreach ADO枚举器通过行循环。在循环中,执行您的sql语句。@ErickAstoOblitas-我已经有一段时间没有使用SSIS了。尝试迭代每一行。将行的E列的值存储在SSIS变量中。然后,使用execute SQL task在SSIS变量中执行SQL。这有用吗?