一个愚蠢的问题,但我有一个数据流任务,OLE DB 源和平面文件目标。
在我的 OLE DB 源中,我希望有一个 UPDATE 语句,然后是一个 SELECT。 当我这样做时,我似乎没有将任何行写入我的平面文件。 顺便说一下,我这样做是为了帮助确保在我的选择失败时不会发生更新。 (我打算将这两个语句放在 BEGIN TRAN 和 COMMIT 之间。
遗憾的是,我无法使用 SSIS 事务,因为运行 SSIS 的服务器没有运行 DTC 服务。
假设所需的序列是 SELECT -> UPDATE -> WRITE_TO_FLAT_FILE,请使用 OLE DB 源执行选择,然后使用 OLE DB 命令执行更新。 最后,使用平面文件目标写出数据。
在 OLE DB 源中,将错误输出设置为"失败组件"或"重定向行";任一选项都允许您避免后续更新命令。
对控制流进行更新。
使用 update 命令添加执行 SQL 任务,将绿色箭头从任务拖动到数据流组件,在数据流中,您将拥有 oleDBSource 和平面文件目标