文章编号: 908460 - 最后修改: 2006年3月11日 - 修订: 2.1

如何添加 SQL Server 2005 集成服务包中的增量计数器通过在数据流任务中使用脚本组件

展开全部 | 关闭全部

简介

使用商务智能开发 Studio 创建 Microsoft SQL Server 2005 集成服务 (SSIS) 包时您可以通过使用一个脚本,一个数据流的任何位置添加增量计数器在数据流任务组件。

渚嬪您可能希望拥有插入每行之后的数据源的增量计数器。 然后,您可以记录和标识都已成功加载和重定向未加载的行的行的计数。 如果您只想在最终计数,可以使用行计数转换添加计数器。 使用脚本组件添加一个计数器和使用行计数转换添加一个计数器是以下区别:
  • 脚本组件添加到您的数据的流的增量值为每一行中的一个新列值。
  • 转换将添加一个行计数和更新当前计数器值到单个用户定义的变量。

更多信息

通过使用脚本添加增量计数器数据流任务中的组件,请按照下列步骤:
  1. 控制流 选项卡上双击您创建的数据流任务。 数据流 显示选项卡。
  2. 在工具箱窗口中双击 脚本组件
  3. 选择脚本组件类型 对话框中单击 转换,然后单击 确定 以预先配置为转换组件。
  4. 数据流量源中的连接器添加到该脚本组件,右击数据流源,然后单击 添加路径
  5. 从脚本中添加的连接符的数据组件流动目标、 用鼠标右键单击脚本组件,然后单击 添加路径
  6. 双击脚本组件。 出现 脚本转换编辑器 对话框。
  7. 单击在左侧窗格中的 输入和输出、 在中间窗格中双击 输出 0,然后单击 输出列
  8. 单击 添加列,然后添加一个名为 mycount 的新列。
  9. 在左窗格中单击 脚本,然后单击 设计脚本。 当应用程序窗口的一个新 Microsoft Visual Studio 出现时,将以下代码粘贴到窗口中。
    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 丛书联机:
  • SQL Server Integration Services (SSIS)
  • 脚本组件
  • 配置脚本组件
  • 编码和测试脚本组件
  • 行计数转换

这篇文章中的信息适用于:
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Standard Edition
关键字:?
kbmt kbsql2005ssis kbhowto KB908460 KbMtzh
机器翻译机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 908460? (http://support.microsoft.com/kb/908460/en-us/ )
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。
 

文章翻译

 

Related Support Centers