2015-12-16 48 views
0

我有一个包含年份特定记录的表,我们根据特定于我们所在年份的标准更改值。我每周更新信息,有时新产品添加或删除产品或对产品进行更改。我们简化了流程,现在我们手动删除当年的记录,然后全部加载全年的源数据。我正试图自动化这个过程。我有一个执行SQL任务,删除当年的记录,但我硬编码的价值。我想要做的就是根据我导入的平面文件中的一个字段将其作为参数。所以我的问题是,我可以创建一个基于平面文件的参数,并在数据流任务之前使用它?或者,我必须执行数据流任务来创建参数,然后执行SQL任务,然后执行另一个数据流任务?使用源平面文件删除目标表ssis中的行

回答

0

您可以使用脚本任务预读平面文件并填充包变量。

+0

您能否提供一个样例来说明如何完成此操作或将我指向资源。我从未使用脚本任务。 – TheVavs

+2

从这里开始:https://www.google.com/search?sourceid=navclient&aq=&oq=ssis+script+task+to+read+&ie=UTF-8&rlz=1T4GGNI_enUS551US551&q=ssis+script+task+to+read+文字+文件&gs_l = hp..2.0l3j0i22i30l2.0.0.7.3589046 ........... 0.cTcIVOY63jQ –

0

enter image description here

,然后在脚本

Imports System 
Imports System.Data 
Imports System.Math 
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper 
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper 

Public Class ScriptMain 
Inherits UserComponent 
Dim intfield As Integer 

Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer) 
    ' 
    ' Add your code here 
    ' 
    intfield = Row.Myfield 
End Sub 
Public Overrides Sub PostExecute() 
    Me.Variables.MyVariable = intfield 
End Sub 
End Class 

为了完整,那么你可以显示变量(同时测试)。
注意:一旦测试完成,您可以禁用此脚本任务!
添加在控制流程的脚本组件(见下图)

enter image description here

然后在脚本添加此来显示变量的内容。

Imports System 
Imports System.Data 
Imports System.Math 
Imports Microsoft.SqlServer.Dts.Runtime 

Public Class ScriptMain 
Public Sub Main() 
    MsgBox(Dts.Variables("MyVariable").Value.ToString) 
    Dts.TaskResult = Dts.Results.Success 
End Sub 
End Class