【问题标题】:How to programmatically create an SSIS Package?如何以编程方式创建 SSIS 包?
【发布时间】:2008-10-21 10:44:51
【问题描述】:

我正在尝试以编程方式创建一个 SSIS 包,其中包含从同一数据库中的表 A 到表 B 的简单数据流。我正在使用here 给出的示例。 该包被创建并保存到一个 dtsx 文件中,但是当我在 Visual Studio 中打开它时,我看到源表和目标表尚未被选择。

我还想在它到达目的地之前插入一个转换任务。


编辑

好吧,我已经成功地选择了源表和目标表,并且任务甚至成功运行。原来我需要

(a) 对源和目标各使用一个 oleDB 连接[我不喜欢这种方式;我只想使用一个连接]

(b) 在目标 SetComponentProperty("AccessMode", 3) 中将 Accessmode 设置为 3,这相当于 Table 或 View - 快速加载。

在某处是否有相关文档。我所能找到的只是 SetComponentProperty 做了什么,而不是它可以采取的所有参数。例如。除了“AccessMode”,我还能放什么?第二个参数 3 或 2 或 1 代表什么?

仍在尝试映射绰号。 STOCK:PipelineTask 表示 DataFlow 任务。 say...复制列的绰号是什么?

【问题讨论】:

    标签: sql-server ssis etl dataflowtask


    【解决方案1】:

    是的,这是我对 SSIS 的不满之一:他们没有提供新术语的简单表格或地图。

    您可以使用一小段代码来发现可用的组件。

    代码位于此处: http://msdn.microsoft.com/en-us/library/ms136106.aspx

    当我运行它时,我发现复制列的名字是: 名称:复制栏 CreationName:DTSTransform.CopyMap.1

    【讨论】:

      【解决方案2】:

      如果您不想使用 DTS .net 程序集,您可以使用 EzApi,它提供了一种更简单的语法来以编程方式创建 SSIS 包。

      EzAPI 是一个 .NET 库,由 SSIS 团队的一名测试人员 Evgeny Koblov 用 C# 编写,用于抽象出许多繁琐的低级编码,这些代码需要直接以编程语言创建 SSIS 包 XML

      EzApi 最初是作为 Microsoft 产品团队创建的 SSIS 社区示例项目的一部分发布的:

      后来它作为一个单独的项目发布以添加对 SQL Server 2016 的支持:

      要开始使用 EzApi,您可以参考互联网上的许多链接,例如:

      【讨论】:

        【解决方案3】:

        我曾经拥有一本 Wrox 书籍SQL Server 2005 Integration Services。我很确定它有一两章专门用于以编程方式使用 SSIS 包。你可能想去当地的书店看看,翻阅一下,它可能有你想要的。

        很抱歉,我无法提供比书籍参考更具体的信息。祝你好运。

        【讨论】:

        • 我还想看看 Kirk Haselden 的 SSIS 书——它更面向程序员。