【问题标题】:SSIS Get List of all OLE DB Destinations in Data FlowSSIS 获取数据流中所有 OLE DB 目标的列表
【发布时间】:2018-06-12 16:02:27
【问题描述】:
我有几个 SSIS 包,用于将来自多个不同 OLE DB 数据源的数据加载到我们的数据库中。在每个包中,我们有几个数据流任务,它们包含大量的 OLE DB 源和目标。我想做的是看看是否有办法让文本输出包含所有目的地流配置(来源会很好,但不是我的列表的顶部)。
我正在尝试确保我的所有 OLE DB 目标流都指向正确的表,因为我发现了一些小问题,而不必双击每个流任务并进行检查,它就变成了乏味且仍然容易丢失东西。
我正在 Visual Studio 2013 中查看包。感谢任何帮助!
【问题讨论】:
标签:
visual-studio-2013
ssis
dataflow
【解决方案1】:
除了构建一个应用程序来读取 *.dtsx 包中的 XML 之外,我不知道有任何编程方式来发现这些数据。最好的建议,打包午餐,然后吃。我确信没有任何关于查看和设置数据库表的内容(仅限服务器连接)。
不过,一旦您确定了列表,我可能会添加一个解决方案:创建一个变量来存储唯一的连接字符串,然后在源/目标组件中设置这些连接字符串。这将使未来的管理更容易。事实上,您可以更进一步,将相同的值设置为参数,而不是变量,后者具有在服务器上公开的额外好处。这允许您或 DBA 在您通过环境升级或更改服务器节点时设置值。
此外,如果可能,我建议将该解决方案合理化为更小的解决方案。在我看来,没有什么比一个巨大的解决方案更糟糕的了。我不确定这是否有帮助,但就其价值而言,我确实希望它有所帮助。
【解决方案2】:
您可以根据需要使用 SSIS 对象模型。可以在 here 找到一个示例。查看方法 IterateAllDestinationComponentnsInPackage 以获取确切的详细信息。要开始理解代码,请从 Start 方法开始并按照路径进行操作。
注意事项:确保为数据流任务和目标组件使用适当的名字对象和类 ID。您也可以将其用于其他控制流任务和数据流组件(例如,您似乎需要的源组件)。请记住适当的名称和类 ID。