我有几个SSIS包,用于将来自多个不同OLE DB数据源的数据加载到我们的数据库中。在每个包中,我们有几个数据流任务,包含大量的OLE DB源和目标。我想要做的是看看是否有办法让文本输出保持所有的目标流配置(源代码可以很好但不是我的列表顶部)。
我正在尝试确保所有的OLE DB目标流都指向正确的表,因为我发现了一些小问题,而不必双击每个Flow任务并检查这种方式,它只是变成了乏味而又容易丢失的东西。
我正在Visual Studio 2013中查看软件包。感谢任何帮助!
答案 0 :(得分:3)
我不知道有任何编程方法来发现这些数据,除了构建一个应用程序来读取* .dtsx包中的XML。最好的建议,包午餐,并有它。我确信在查看和设置数据库表(仅服务器连接)方面没有任何意义。
但是,一旦确定了列表,我可以添加一个解决方案:创建一个变量来存储唯一的连接字符串,然后在源/目标组件中设置这些连接字符串。这将使您更容易管理。实际上,您可以通过设置与参数相同的值来进一步采取相对于变量的相同值,这些变量具有在服务器上公开的额外好处。这允许您或DBA在您通过环境或更改服务器节点进行提升时设置值。
此外,如果可能,我建议将该解决方案合理化为更小的解决方案。在我看来,没有什么比试图完成所有这一切的巨大解决方案更糟糕了。我不确定这些是否有用,但鉴于它的价值,我希望它有所帮助。
答案 1 :(得分:1)
您可以根据需要使用SSIS对象模型。可以找到一个示例here。查看方法IterateAllDestinationComponentnsInPackage以获取确切的详细信息。要开始理解代码,请从Start方法开始并按照路径进行操作。
注意事项:确保为数据流任务和目标组件使用适当的Monikers和Class ID。您还可以将其用于其他控制流任务和数据流组件(例如,源组件,因为您的其他需求似乎是)。请记住适当的Monikers和Class ID。