如何在ssis

时间:2016-10-11 19:04:43

标签: sql-server ssis

我有一个SSIS 2008r2软件包因外键违规而失败。我试图捕获调试窗口中出现的错误

  

INSERT语句与FOREIGN KEY约束冲突   “XXXX”。冲突发生在数据库“xxxxxx”,表“xxxxx”中,   列'xxxx'。

我已尝试启用SSIS日志记录并为“OnError”事件创建事件处理程序,但日志仅提供通用SSIS消息

  

SSIS错误代码DTS_E_PROCESSINPUTFAILED。ProcessInput方法   组件“xxxxx目标”(1458)上的错误代码失败   处理输入“ADO NET目标输入”时的0xC020844B(1461)。   标识的组件从Process Input返回错误   方法。该错误特定于组件,但错误是致命的   并将导致数据流任务停止运行。可能有错误   在此之前发布的消息,包含有关失败的更多信息。

我想获取要记录的确切错误(即这是外键违规)而不是DTS错误。怎么办呢?

1 个答案:

答案 0 :(得分:0)

尝试使用OLE DB目的地。

只是为了记录,如果你在SSIS中有一个脚本任务,你可以使用DTS对象记录错误:

  try  
  {  
      // your code 
  }  
  catch (Exception ex)  
  {  
     //An error occurred.  
     Dts.Events.FireError(0, "Script Task Example", ex.Message + "\r" + ex.StackTrace, String.Empty, 0);  
     Dts.TaskResult = (int)ScriptResults.Failure;  
  } 

MSDN - Logging in the Script Task