我的 SSIS 包中有一个 foreach 循环容器,它迭代大约 30 个 .mdb (Access 2000) 文件。
这些文件可能非常大(最大 1GB),因此我想要某种“视觉反馈”来显示当前正在迭代哪个文件,可以是文件名,也可以是“当前位于 y 中的 x”文件”。
有什么方法可以在包执行期间动态显示这一点吗? 也许动态更新盒子的名称?
我正在使用 SQL Server/Visual Studio 2005
提前致谢。
最佳答案
在 foreach
循环的开头放置一个脚本任务,选择 Visual Basic
,选择要作为 ReadOnlyVariables 监视的变量,然后替换默认的 使用此代码的 Public Sub Main()
(编辑:还包括每个请求的 Enum ScriptResults
代码):
Enum ScriptResults
Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success
Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
End Enum
Public Sub Main()
Dim msg As String = ""
For Each Variable As Microsoft.SqlServer.Dts.Runtime.Variable In Dts.Variables
msg = msg & "--" & Variable.Name & "|| " & Variable.Value.ToString() & "||"
Next
Dts.Events.FireInformation(-1, "", msg, String.Empty, -1, False)
Dts.TaskResult = ScriptResults.Success
End Sub
进度选项卡将在每次迭代开始时记录变量。
关于sql-server - 具有视觉反馈的 SSIS Foreach 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18721053/