2015-12-16 56 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