我的目標是從現有的表中提取數據並進行一些基本的轉換(例如,派生列,合併連接)。之後,我想將數據存儲到一個變量中。然後,我將使用腳本任務用C#編寫發送電子郵件程序,並調用變量將這些數據加載到我的電子郵件正文內容中。但我很困惑,在幾步轉換任務後,我可以在哪裏存儲這些臨時數據。任何幫助,我很讚賞它。SSIS如何將數據流數據存儲在臨時表中,然後將其附加到電子郵件中?
1.My整個控制流程
2.My很少改造任務的數據流。我想知道如何在Sort4之後存儲數據,然後我可以將它們存儲到變量中。
我的目標是從現有的表中提取數據並進行一些基本的轉換(例如,派生列,合併連接)。之後,我想將數據存儲到一個變量中。然後,我將使用腳本任務用C#編寫發送電子郵件程序,並調用變量將這些數據加載到我的電子郵件正文內容中。但我很困惑,在幾步轉換任務後,我可以在哪裏存儲這些臨時數據。任何幫助,我很讚賞它。SSIS如何將數據流數據存儲在臨時表中,然後將其附加到電子郵件中?
1.My整個控制流程
2.My很少改造任務的數據流。我想知道如何在Sort4之後存儲數據,然後我可以將它們存儲到變量中。
可以存儲DataTable
或List
這裏面的行使用腳本組件。
添加類型Object
的SSIS變量(例如:User::DataList
)
在數據流任務,添加腳本組件作爲Destination
。將所有列標記爲輸入。並使用下面的代碼。 (Vb.net)
列表版本
Public Class ScriptMain
Inherits UserComponent
Public Overrides Sub PostExecute()
MyBase.PostExecute()
Variables.DataList = lstObject
End Sub
Dim lstObject As Collections.Generic.List(Of DataClass)
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
lstObject.Add(New DataClass With {
.CompanyName = Row.CompanyName,
.CountryName = Row.Country,
.EmployeeName = Row.EmployeeName,
.Freight = CDbl(Row.Freight)})
End Sub
End Class
Public Class DataClass
Public Property CompanyName As String
Public Property CountryName As String
Public Property EmployeeName As String
Public Property Freight As Double?
End Class
的DataTable版
Public Class ScriptMain
Inherits UserComponent
Dim dtData As New System.Data.DataTable("dtData")
Public Overrides Sub PostExecute()
MyBase.PostExecute()
Variables.DataList = dtData
End Sub
Public Overrides Sub PreExecute()
MyBase.PreExecute()
dtData.Columns.Add("CompanyName")
dtData.Columns.Add("CountryName")
dtData.Columns.Add("EmployeeName")
dtData.Columns.Add("Freight")
End Sub
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
Dim drRow As DataRow = dtData.NewRow
drRow("CompanyName") = Row.CompanyName
drRow("CountryName") = Row.Country
drRow("EmployeeName") = Row.EmployeeName
drRow("Freight") = Row.Freight
dtData.Rows.Add(drRow)
End Sub
End Class
這是海報孩子,爲什麼你應該做的東西在查詢,而不是在SSIS.You真的可以通過編寫SQL使用郵箱發送電子郵件一個存儲過程簡化了這一點。 –