SSIS - Log Error - Retrieve the column causing an error in SQL Server Integration Services
29/09/2019 15:52
In versions of SSIS before SQL Server 2016, there was no easy way in the data flow to retrieve the name of the column that caused a component to fail.
To make it works, you should follow these steps:
1 - Add a new Script Transformation (Error Details)
2 - Select only the new columns:
3 - In output add new columns:
4 - In C# script editor add this statement:
public override void Input0_ProcessInputRow(Input0Buffer Row) { Row.ErrorDescription = this.ComponentMetaData.GetErrorDescription(Row.ErrorCode); IDTSComponentMetaData130 componentMetaData = this.ComponentMetaData as IDTSComponentMetaData130; Row.ErrorColumnName = componentMetaData.GetIdentificationStringByID(Row.ErrorColumn); }
5 - In SQL database destination, add the new columns on your log table:
alter table [stage].[LoadErrors]
add ErrorColumnName varchar(500),
ErrorDescription varchar(500)
alter table [stage].[LoadErrors]
add ErrorColumnName varchar(500),
ErrorDescription varchar(500) alter table [stage].[LoadErrors]
add ErrorColumnName varchar(500),
ErrorDescription varchar(500)
All done!