【问题标题】:SSIS - DB Destination Dynamic Table NameSSIS - 数据库目标动态表名称
【发布时间】:2018-08-06 07:21:31
【问题描述】:

在 ssis 包中使用控制流创建表 A、B、C 后,使用数据流读取 Excel。 我想把数据放到处理后生成的表A、B、C中。

控制流(创建表(A,B,C))->数据流(读取Excel文件->拆分->插入表(A,B,C))

控制流

数据流

创建问题表 SQL 脚本 functoid

目的地错误信息

我认为动态表是必要的。请帮助您如何连接。

【问题讨论】:

  • 还有一件事 - 为什么要在 SQL 任务中创建表?你只做一次 - 你为什么不直接创建它们,然后从列表中选择它们呢?除非在我看不到原因之前有一些逻辑
  • 我刚刚重现了您的场景,除非之前从未创建过表,否则这很好 - 在这种情况下,包验证将失败。如果您真的需要创建这些表,我会第二次询问@Thomas。是不是您只想在插入数据之前清除这些表?
  • 同意@Filburt - 我也只是尝试重新创建场景并且我没有任何错误。仅当表不存在时。此外,如果您在不同的模式下具有相同的表名,您可能不会插入正确的表名。所以请记住这一点。在你的表名前声明模式名是一种很好的做法
  • 感谢您的回答。我明天试试(声明模式名称)。明天我会添加评论。 @Filburt @Thomas 非常感谢! :)
  • 检查您的表是否首先创建。这是最关键的。

标签: dynamic ssis


【解决方案1】:

您在目标表配置中使用包含所需目标表名称的变量。

在目的地的Connection Manager 页面上,只需从数据访问模式 下拉选项中选择Tabel name or view name variable

然后选择包含所需表名的变量。

【讨论】:

  • 感谢您的回答。但如果我选择“表名或视图名变量”,则会出现“无效对象名”问题。
  • 您能否展示一下您的Create Question TableCreate Option TableCreate Response Table SQL Script functoids 的内容?听起来这些变量与您在那里使用的表名不同步。
  • 感谢您的回答。我上传了「创建问题表」、「无效的对象名称」。你能检查一下吗?
  • 状态消息表明目标函数丢失了列映射。切换到Mappings页面,调整列映射。
  • No filburt - 它找不到他的表,要么是因为他没有创建它,要么是因为他的变量设置错误。当您没有映射任何东西时,映射警告是标准的。但是他不能映射任何东西,因为他不能参考他的表格。可能是由于我在对答案的评论中写的无效的表名
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-22
  • 1970-01-01
  • 2010-10-30
  • 1970-01-01
相关资源
最近更新 更多