【问题标题】:SSIS 2005 - Have UPDATE *and* SELECT in OLE DB Source in Data FlowSSIS 2005 - 在数据流中的 OLE DB 源中具有 UPDATE *和* SELECT
【发布时间】:2012-04-26 05:45:52
【问题描述】:

这可能是一个愚蠢的问题,但我有一个数据流任务、OLE DB 源和平面文件目标。

在我的 OLE DB 源中,我想要一个 UPDATE 语句,然后是一个 SELECT。当我这样做时,我似乎没有将任何行写入我的平面文件。顺便说一句,我这样做是为了帮助确保如果我的选择失败,我的更新不会发生。 (我打算将这两个语句放在 BEGIN TRAN 和 COMMIT 之间。)

很遗憾,我无法使用 SSIS 事务,因为运行 SSIS 的服务器没有运行 DTC 服务。

【问题讨论】:

  • 请详细说明您所说的是哪种更新声明。究竟是什么不起作用?
  • 对不起,我不清楚。我希望选择/文件操作和更新操作成为一个原子事务的一部分。因此,如果更新失败,则不会创建文件,反之亦然。我假设一个人不能这样做

标签: sql ssis dataflowtask


【解决方案1】:

假设您想要的顺序是 SELECT -> UPDATE -> WRITE_TO_FLAT_FILE,请使用您的 OLE DB 源进行选择,然后使用 OLE DB 命令进行更新。最后,使用您的平面文件目标将数据写出。

在 OLE DB 源中,将错误输出设置为“失败组件”或“重定向行”;任何一个都可以让您避免后续更新命令。

【讨论】:

    【解决方案2】:

    你必须更新你的控制流。

    使用更新命令添加执行 SQL 任务,将绿色箭头从任务拖到数据流组件,在数据流中您将拥有 oleDBSource 和平面文件目标

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多