How to programmatically create an SSIS Package?

故事扮演 提交于 2019-12-21 04:21:57

问题


I am trying to programmatically create an SSIS package containing a simple data flow from table A to table B in the same database. I am using the example given here. The package gets created and saved to a dtsx file, but when I open it in visual studio I see that the source and destination tables have not been selected.

I also want to insert a transformation task in between before it reaches the destination.


EDIT

Well I have managed to get the source and destination tables selected and the task even ran successfully. Turns out I needed to

(a) use one oleDB connection each for the source and destination [I don't like this way; I want to use one connection only]

(b) set the Accessmode to 3 in the destination SetComponentProperty("AccessMode", 3) which equates to Table or View - fast load.

Is there some documentation on this somewhere. All I can find is what SetComponentProperty does, and not what all parameters it can take to do that. eg. what else can I put there besides "AccessMode"?, what does the second parameter 3 or 2 or 1 stand for?

Still trying to map the monikers. STOCK:PipelineTask means DataFlow Task. What is the moniker for say... copy column?


回答1:


Yes, this is one of my frustrations with SSIS: that they do not provide simple table or map of the new terminology.

You can use a small piece of code to discover components available for use.

The code is located here: http://msdn.microsoft.com/en-us/library/ms136106.aspx

When I ran it, I found the moniker for copy column to be: Name: Copy Column CreationName: DTSTransform.CopyMap.1




回答2:


If you don't want to use the DTS .net assemblies you can use EzApi which provides a simpler syntax to create SSIS package programmatically.

EzAPI is a .NET library written in C# by Evgeny Koblov one of the testers on the SSIS team to abstracts away a lot of the cumbersome low-level coding needed to create SSIS packages XML directly in a programming language

EzApi was first published as a part of the SSIS community samples project created by Microsoft product team:

  • SQLSrvIntegrationSrv
  • GitHub - MSSQL SSIS community samples

And later it is published as a separate project to add support SQL Server 2016:

  • GitHub - EzApi2016
  • NuGet Gallery - EzApi

To get starteed with EzApi there are many link on the internet that you can refer to such as:

  • EzAPI – Alternative package creation API
  • EzAPI Overview
  • EzApi a C# library for creating SSIS packages programatically
  • Getting Started with EzAPI



回答3:


I used to have a copy of SQL Server 2005 Integration Services, a Wrox book. I am pretty sure it has a whole chapter or two dedicated to programmatically working with SSIS packages. You may want to check out a local book store and flip through it, it may have what you want.

Sorry I can't give you anything more specific than a book reference. Good luck.



来源:https://stackoverflow.com/questions/221428/how-to-programmatically-create-an-ssis-package

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!