2011-04-05 100 views
2

我有很多* .sql脚本文件,我想将它们合并到我的SSIS包中。从SSIS包执行SQL文件

是否可以使用这些* .sql文件作为选择/插入/更新/创建/修改/删除语句在我的包的来源?

目标是在不修改软件包的情况下动态修改脚本。

感谢

回答

2

您可以使用执行SQL任务,其中语句来自这些sql文件。例如,如果在foreach循环中循环所有* .sql类型的文件,然后在循环的文件连接上使用Execute SQL任务,则应该可以毫无问题地运行所有这些SQL文件。 (更改执行SQL任务编辑器常规窗格中的SQLSourceType)

+0

是的,你是正确的,但我需要更多的测试,如果这将是可行的T-SQL和光标。 [从文件传递SQL语句](http://www.sqlis.com/sqlis/post/The-Execute-SQL-Task.aspx) – someguy198650 2011-04-06 01:51:02

+0

最后一个问题,你如何使用Foreach循环来循环文件? – someguy198650 2011-04-06 01:58:28

+0

[使用Foreach循环遍历文件](http://www.sqlis.com/post/Looping-over-files-with-the-Foreach-Loop.aspx)&[SSIS:为​​Foreach文件动态指定文件夹路径Foreach循环容器中的枚举器](http://blogs.msdn.com/b/changliw/archive/2010/07/19/ssis-dynamically-specify-folder-path-for-foreach-file-enumerator-in-foreach -loop-editor-task.aspx) – someguy198650 2011-04-06 05:52:44

0

而不是使用.sql文件,你可以设置SQL语句来自变量。您可以从Package Configurations中设置这些变量,这些变量可以是XML文件的形式。这些XML文件可以存储SQL,您可以在不修改或重新部署软件包的情况下更改它们,这应该可以为您提供所需的灵活性。 This链接告诉你如何设置。

+0

好吧我会检查,但是如果我必须执行数千行语句,因为我有一个文件有10,000行插入语句? – someguy198650 2011-04-05 09:30:59

+0

是的,这不是真的可行。你最好创建一个类似加载或登台数据库的东西,将数据插入到表中,然后从那里加载到主包中。 – grapefruitmoon 2011-04-05 09:59:33