【问题标题】:How do I get all of the table names in a SSIS package?如何获取 SSIS 包中的所有表名?
【发布时间】:2019-12-12 16:45:04
【问题描述】:

我正在执行一个迁移到 Azure 的项目。我试图搜索互联网无济于事。除了通过 XML 访问表名。

【问题讨论】:

  • 能否在控制流的 SSDT 中找到源表?

标签: ssis tablename


【解决方案1】:

您最大的挑战将是以前的开发人员有多聪明。表名可以指定为硬编码值 - 简单或 SSIS 变量 - 硬。

为什么变量方法很难?我可以有CurrentTableName 并且xml 中的值指定table20180317。但是该变量上可能有一个表达式,它真正使表名称为 tableYYYYMMDD,并且当包运行时,它的计算结果为 table20191212。如果没有设置表达式,那么您仍然需要担心表达式任务 (2012+)、脚本任务和命令行属性覆盖。

由于您尚未指定团队/您将擅长使用哪些工具,也没有指定软件包的复杂程度,因此很难提出解决此问题的最佳方法。就个人而言,我会考虑将免费的 BimlExpress 插件添加到您的 Visual Studio/SSDT 实例中。然后我会将 SSIS 包逆向工程为 Biml。 Biml 是一种 XML 方言,可简化包的创建和检查。与 .dtsx 包包含的所有 xml 杂乱无章不同,包的 Biml 表示中的属性将更加简单。

如果包裹的数量很少,我会从那里手动检查 Biml。如果更大,我会使用 Linq 和 Biml 对象模型来枚举包并构建所有用户定义的变量、连接字符串、来自任何执行 SQL 任务的 SQL 的列表,然后是数据的源和接收器与它使用的连接管理器和目标表/变量一起流动。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    • 2013-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-23
    相关资源
    最近更新 更多