我需要将所有SQL查询存储在一个文件夹下,并在SSIS包中引用以更好地组织我正在使用的SQL文件列表,这样我们可以在以后轻松更改SQL文件而无需重新构建软件包。这将包括我用于“执行SQL任务”的所有查询以及“数据流”组件下“OLE DB数据源”中的查询。
在“数据流”任务下,而不是将源数据库的SQL查询放入查询窗口: 我在OLE DB数据源的数据访问模式下看到四个选项 - 1.表或视图 2.视图名称变量表 3. SQL命令 4.来自变量的SQL命令
我知道我可以使用变量,将查询存储在变量中并在“执行SQL任务”中引用它,但我正在寻找一种方法将所有查询存储在SQL文件中,并将其存储在数据流组件中以及在“执行SQL脚本任务”中。我似乎无法找到一种方法使其在数据流任务中动态化。有人可以帮忙吗?
答案 0 :(得分:0)
我不认为将它们存储为sql文件对任何类型的场景都有好处。 根据你所描述的内容,我会采取以下措施。
您可以将查询作为varchar存储在数据库的表中而不是文件中。然后,您可以对结果集进行foreach循环,并将每一行映射到变量,然后将该变量用作数据流中oledb数据源的查询。
所以创建一个变量并为每个循环创建一个循环“select from dbo.queries”或者什么。将输出设置为您创建的变量,并在容器中创建数据流,并使用表达式设置source-task或使用“来自变量的SQL命令”。
至于控制流查询为什么不只是将它们存储在您需要时可以更改的存储过程中?