了解脚本组件如何更新数据库中的数据

时间:2014-06-13 19:12:53

标签: sql-server ssis

我对SSIS中的脚本非常陌生,只需要使用它来更新现有表中的值。

也许我采取了错误的方法,因为我发现脚本组件用于此目的的例子非常少。如果有更好的方法来更新SQL Server中的数据,按计划使用复杂的业务逻辑,我更喜欢使用标准方法。

但是关于脚本组件,我已经看到了添加列的示例,但没有添加任何值的示例。

到目前为止,我已创建此测试脚本以执行最简单的操作:

public override void Input0_ProcessInputRow(Input0Buffer Row)
{
    Row.AutoModel = "123";
}

我运行SSIS包。我知道它运行这个方法,因为我在那里放了一个断点。 SSIS包成功完成后,我希望所有AutoModel字段成为" 123"在数据库中,但没有任何改变。我还需要做些什么来调用这些更新吗?

1 个答案:

答案 0 :(得分:2)

SSIS有两个不同的脚本项,可能有点令人困惑。 “脚本任务”显示在“控制流设计”选项卡的工具箱中,“脚本组件”显示在“数据流”选项卡的工具箱中。

在这种情况下,您使用的是脚本组件,这是一种数据流转换。

数据流通常具有数据源,一个或多个转换以及数据目标。您希望更新数据库中的记录,而不是插入它们,因此您需要在数据流末尾使用OLE DB命令,该命令将调用存储过程。

您将编写存储过程以执行所需的更新,并且它将采用必要的参数。应将OLE DB Command对象配置为将数据流中的字段映射到存储过程的参数。

你说“也许我采取了错误的做法”。根据我的经验,脚本组件可能很有用,但最好谨慎使用。也许很多处理可以由标准组件处理(例如表查找,条件拆分,派生列和聚合)?

以这种方式使用SSIS具有很大的优势。它提供了最佳性能。开发和维护起来更快。运行程序包时,您可以查看数据流向哪些路径。您可以附加数据查看器来检查数据。