如何通过API将SSIS Lookup转换设置为忽略失败?
SSIS Lookup转换:通过API设置“忽略失败”的方法
在SSIS的「指定如何处理无匹配项的行」下拉菜单里,有4个可选选项:
- 忽略失败
- 将行重定向到错误输出
- 失败组件
- 将行重定向到无匹配项输出
但官方API文档里只列出两个选项:
- 将无匹配项的行视为错误(对应值0)
- 将无匹配项的行发送到无匹配项输出(对应值1)
而且调用lookupWrapper.SetComponentProperty("NoMatchBehavior", 1);这类代码时,参数只能是0或1。但在UI里设置「忽略失败」后,查看XML配置会发现NoMatchBehavior的值是1,这就带来了疑惑:怎么通过API把Lookup转换设置成「忽略失败」?
更新:
对比不同选项对应的XML差异后找到了答案——需要同时配置Lookup的NoMatchBehavior属性,以及「Lookup Match Output」的errorRowDisposition属性,具体对应关系如下:
| 选项 | errorRowDisposition | NoMatchBehavior |
|---|---|---|
| 失败组件 | "FailComponent" | 0 |
| 忽略失败 | "IgnoreFailure" | 0 |
| 重定向到无匹配项 | - | 1 |
| 重定向到错误输出 | "RedirectRow" | 0 |
按照这个对应关系,要设置「忽略失败」,可以编写如下代码:
... lookupWrapper.SetComponentProperty("NoMatchBehavior", 0); ... lookupMatchOutput.ErrorRowDisposition = DTSRowDisposition.RD_IgnoreFailure; ...
内容的提问来源于stack exchange,提问作者Alsin
相关产品推荐
相关产品推荐

