我的目标是从现有的表中提取数据并进行一些基本的转换(例如,派生列,合并连接)。之后,我想将数据存储到一个变量中。然后,我将使用脚本任务用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使用邮箱发送电子邮件一个存储过程简化了这一点。 –