如何使无效行上的SSIS组件失败

Urb*_*Esc 1 ssis bids visual-studio-2008

我希望能够做到以下几点:

  • 逐行导入flatfile
  • 对每行的列值进行条件拆分
  • 如果我检测到有效值,我想继续这一行
  • 如果在任何情况下我检测到一个不可能的值我想要失败组件,所以工作流程停止,我得到一个错误

示例:我有一个包含三列的文件("type","value","message")

我想使用flatfile目标逐行导入该文件.然后我想做条件拆分.如果"type"列的值为"1",我想将该行写入我的destinatoin.如果类型是"2"或"3"我想忽略它们.但是,如果它的"A"或"0"我想要失败组件.

除了"失败"之外,我还有其他一切.我将最后一个条件("列不是1,2或3")的输出配置为"Fail Component",但它实际上并没有使组件失败.

Dar*_*son 7

将脚本组件添加到数据流(作为目标),并将其链接到您要强制程序包失败的条件的条件拆分.

在脚本组件内添加

    bool pbCancel = false;
    this.ComponentMetaData.FireError(100, "Script Component", "Data Error <type message here>", "", 0, out pbCancel);
Run Code Online (Sandbox Code Playgroud)

脚本组件本身将成功,但数据流任务将失败并导致程序包失败