sql - 我应该如何从 SSIS 包执行以 varchar(max) 形式存储在表中的 sql 脚本?

标签 sql ssis

我正在表中存储大型 (varchar(max)) SQL 脚本。我想执行 SSIS 包中的脚本。

查看本网站上的其他帖子,很容易将 varchar(max) 放入对象变量中。但接下来该怎么办呢?有没有办法让执行 Sql 任务(变量的 SQLSourceType)指定对象变量而不是字符串变量?

有没有可行的方法?

最佳答案

我可能会采取以下方法:

  1. 将数据流任务添加到您的控制流中
    • 添加连接到数据库的源 (ADO.NET)
    • 创建包级对象变量(用于下一步)
    • 添加记录集目标,将数据填充到上一步中创建的对象变量中
  2. 回到控制流程:
    • 为“当前”查询创建包级字符串变量(请参阅下一步)
    • 添加 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/

相关文章:

mysql - 简单的 IF.. Else.. mysql 查询

sql - Oracle SQL Next_day 未分组

sql - 选择艺术家专辑列表并显示每个专辑中已请求艺术家和专辑的轨道数

sql - 如何在 PostgreSQL 中给每个组编号

vb.net - 从 SSIS 上的脚本任务执行时,Oracle 过程不返回结果

sql-server - SSIS - 创建自定义连接管理器

sql-server - 查找从单个串联值字符串拆分成行的最低值和最高值

excel - SSIS 将自定义 header 添加到 Excel 文件

c# - 如何使用 EzAPI 创建 SSIS 2012 项目?

mysql - 获取子查询返回的行作为原始列的列