如何跳过脚本组件中的一行

ARZ*_*ARZ 4 sql-server ssis

如何在不使用条件拆分组件的情况下跳过脚本组件中的某些记录

bob*_*obs 9

要跳过脚本组件中的记录,需要使用异步输出创建脚本组件.默认情况下,脚本组件使用同步输出,这意味着输入到脚本的每一行也将是脚本的输出.

如果您正在使用SQL Server 2005,我认为您必须从一个新的Script组件开始,因为一旦您使用了Script组件,就无法从同步更改为异步.在SSIS for SQL Server 2008中,您可以将脚本组件从同步切换到异步.

编辑脚本组件,然后选择"输入和输出"选项卡.在树视图中选择输出缓冲区.选择SynchronousInputID属性并将值更改为None.在树视图中选择"输出列"分支.您必须使用"添加列"按钮为每个输入列创建一列.

现在您可以编辑脚本了.在处理行的过程中,您将添加一些代码来控制跳过和输出行.如果要跳过一行,您将使用Row.NextRow()命令,其中Row是输入缓冲区的名称.这是一个例子:

    If Row.number = 5 Then
        Row.NextRow()
    End If
Run Code Online (Sandbox Code Playgroud)

在此示例中,将跳过在数字列中具有5的行.

应用其他转换逻辑后,您需要指示该行应转到输出.这是通过Output0.AddRow()命令启动的,其中Output0是输出缓冲区的名称.AddRow函数创建下一个输出缓冲区,该缓冲区将前一行推出Script组件.创建新行后,必须为新行中的列指定值.

    Output0Buffer.AddRow()
    Output0Buffer.number = Row.number
Run Code Online (Sandbox Code Playgroud)

此示例向缓冲区添加一个新行,并将输入缓冲区中的数字值分配给输出缓冲区中的数字列.