使用源平面文件删除目标表ssis中的行
问题描述:
我有一个包含年份特定记录的表,我们根据特定于我们所在年份的标准更改值。我每周更新信息,有时新产品添加或删除产品或对产品进行更改。我们简化了流程,现在我们手动删除当年的记录,然后全部加载全年的源数据。我正试图自动化这个过程。我有一个执行SQL任务,删除当年的记录,但我硬编码的价值。我想要做的就是根据我导入的平面文件中的一个字段将其作为参数。所以我的问题是,我可以创建一个基于平面文件的参数,并在数据流任务之前使用它?或者,我必须执行数据流任务来创建参数,然后执行SQL任务,然后执行另一个数据流任务?使用源平面文件删除目标表ssis中的行
答
您可以使用脚本任务预读平面文件并填充包变量。
答
,然后在脚本
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
为了完整,那么你可以显示变量(同时测试)。
注意:一旦测试完成,您可以禁用此脚本任务!
添加在控制流程的脚本组件(见下图)
然后在脚本添加此来显示变量的内容。
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
您能否提供一个样例来说明如何完成此操作或将我指向资源。我从未使用脚本任务。 – TheVavs
从这里开始: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 –