gpt4 book ai didi

sql-server - 如何从脚本组件中的一行跳过

转载 作者:行者123 更新时间:2023-12-03 02:06:17 24 4
gpt4 key购买 nike

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

最佳答案

创建具有异步输出的脚本组件

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

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

  • 编辑脚本组件并选择“输入和输出”选项卡。
  • 在 TreeView 中选择输出缓冲区。
  • 选择 SynchronousInputID 属性并将值更改为 None
  • 在 TreeView 中选择“输出列”分支。您必须使用“添加列”按钮为每个输入列创建一个列。

脚本

跳过行

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

If Row.number = 5 Then
Row.NextRow()
End If

在此示例中,数字列中包含 5 的行将被跳过。

输出行

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

创建新行后,必须为新行中的列分配值。

Output0Buffer.AddRow()
Output0Buffer.number = Row.number

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

关于sql-server - 如何从脚本组件中的一行跳过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3953865/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com