我正在表中存储大型 (varchar(max)
) SQL 脚本。我想执行 SSIS 包中的脚本。
查看本网站上的其他帖子,很容易将 varchar(max)
放入对象变量中。但接下来该怎么办呢?有没有办法让执行 Sql 任务(变量的 SQLSourceType)指定对象变量而不是字符串变量?
有没有可行的方法?
最佳答案
我可能会采取以下方法:
- 将数据流任务添加到您的控制流中
- 添加连接到数据库的源 (ADO.NET)
- 创建包级对象变量(用于下一步)
- 添加记录集目标,将数据填充到上一步中创建的对象变量中
- 回到控制流程:
- 为“当前”查询创建包级字符串变量(请参阅下一步)
- 添加 For Each ADO.NET 枚举器
- 将之前的数据流任务连接到 For Each 任务
- 配置 For Each 以使用 Object 变量作为源,并将列索引与 SQL 一起存储到 String 变量中
- 在 For Each 任务中添加执行 SQL 任务
- 将其配置为从变量执行 SQL 命令,并选择包含当前查询的字符串变量
基本上,它会从表中收集查询,然后对于每个收集的查询,将其分配给一个变量,然后“执行 SQL”命令可以从该变量中提取命令文本。
关于sql - 我应该如何从 SSIS 包执行以 varchar(max) 形式存储在表中的 sql 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11943588/