从SSIS中的Excel中导入数据,为空值

我正在使用SSIS将数据从Excel工作表导入到SQL Server 2005中,数据中包含一些数据应该具有前一个非空单元的值的列,如下所示:

2005 | 15 | Something1 | 12 | Something2 | 14 | Something3 2006 | 10 | Something4 | 2 | Something5 | 18 | Something6 | 15 | Something7 

它应该填写2005年和2006年,但我能得到的是空值。 如果该字段的值不为空,可以将该字段的值放入一个variables中,并用它来replace后面的空值?

您必须在数据stream中使用脚本组件,然后遍历每行,并使用variables保存最后一个已知值。

更新:这是代码。 我在SSIS 2008的VB中做了这个,所以可能有一些编辑你必须做(例如,你可能不得不使用Dts.Variables [“User :: LastYear”]。Value.ToInt32()而不是Variables.LastYear – 我不记得我的头顶):

 Dim LastYear As Integer Public Overrides Sub PreExecute() MyBase.PreExecute() LastYear = 0 End Sub Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer) If Row.year_IsNull Then Row.year = LastYear Else LastYear = Row.year End If End Sub 

希望这有助于!