INTRODUCTION
通过 BusinessIntelligenceDevelopmentStudio, 创建 Microsoft SQL Server 2005 Integration Services (SSIS) 包时数据流的任意时刻添加一个递增计数器通过数据流任务中使用脚本组件。
例如, 可能需要具有每行数据源后插入一个递增计数器。 然后, 您可以录制和标识的行成功加载和重定向, 未加载行数。 如果只有兴趣最终计数, 可用于行计数转换添加计数器。 使用脚本组件来添加计数器和使用行计数转换来添加计数器区别是:
• |
作为新列值在每行一个脚本组件添加到数据流您一个增量值。 |
• |
A 行计数转换添加并更新到单个用户定义变量当前计数器值。 |
回到顶端
更多信息
要通过在数据流任务, 使用脚本组件添加一个递增计数器请按照下列步骤:
1. |
在 控制流 选项卡, 双击创建数据流任务。 数据流 选项卡出现。 |
2. |
在工具箱窗口, 双击 脚本组件 。 |
3. |
选择脚本组件类型 对话框中, 单击 转换 , 并单击 确定 以预配置组件作为转换。 |
4. |
连接器从数据流量源添至脚本组件, 右击数据流量源, 然后单击 添加路径 。 |
5. |
要从脚本添加连接器组件以数据流动目标, 右击脚本组件, 然后单击 添加路径 。 |
6. |
双击脚本组件。 出现 脚本转换编辑器 对话框。 |
7. |
单击左窗格中 输入和输出传递 , 双击中间窗格, 中 输出 0 依次 输出列 。 |
8. |
添加列 , 单击, 然后添加新列名 mycount 。 |
9. |
在左窗格中, 单击 脚本 , 然后单击 设计脚本 。 当出现新 Microsoft Visual Studio for Applications 窗口, 将下列代码粘贴到窗口。
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 counter As Integer = 0 ' User code
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
'
' Add your code here
Row.mycount = counter ' User code
counter = counter + 1 ' User code
'
End Sub
End Class
|
10. |
在 脚本转换编辑器 对话框中, 单击 确定 。 |
当您完成这些步骤, 作为数据流量目的中列使用 mycount 列。 您可扩展功能的示例代码以添加更多信息。 例如, 添加 ExecutionInstanceGuid 系统变量或时间和日期戳。
注意 :
mycount 列, 添加反映脚本组件中处理行顺序。
mycount 列不一定反映原始源中实际行号。 数据流, 中其他转换后插入脚本组件时尤其如此因为脚本组件可能筛选数据或重定向行之前所有数据流对象。
回到顶端
参考
有关详细信息, 请参阅 SQL Server 2005 联机图书中下列主题:
• |
SQLServer 集成服务 (SSIS) |
• |
脚本组件 |
• |
配置脚本组件 |
• |
编码和测试脚本组件 |
• |
行计数转换 |