【发布时间】:2019-12-12 16:45:04
【问题描述】:
我正在执行一个迁移到 Azure 的项目。我试图搜索互联网无济于事。除了通过 XML 访问表名。
【问题讨论】:
-
能否在控制流的 SSDT 中找到源表?
我正在执行一个迁移到 Azure 的项目。我试图搜索互联网无济于事。除了通过 XML 访问表名。
【问题讨论】:
您最大的挑战将是以前的开发人员有多聪明。表名可以指定为硬编码值 - 简单或 SSIS 变量 - 硬。
为什么变量方法很难?我可以有CurrentTableName 并且xml 中的值指定table20180317。但是该变量上可能有一个表达式,它真正使表名称为 tableYYYYMMDD,并且当包运行时,它的计算结果为 table20191212。如果没有设置表达式,那么您仍然需要担心表达式任务 (2012+)、脚本任务和命令行属性覆盖。
由于您尚未指定团队/您将擅长使用哪些工具,也没有指定软件包的复杂程度,因此很难提出解决此问题的最佳方法。就个人而言,我会考虑将免费的 BimlExpress 插件添加到您的 Visual Studio/SSDT 实例中。然后我会将 SSIS 包逆向工程为 Biml。 Biml 是一种 XML 方言,可简化包的创建和检查。与 .dtsx 包包含的所有 xml 杂乱无章不同,包的 Biml 表示中的属性将更加简单。
如果包裹的数量很少,我会从那里手动检查 Biml。如果更大,我会使用 Linq 和 Biml 对象模型来枚举包并构建所有用户定义的变量、连接字符串、来自任何执行 SQL 任务的 SQL 的列表,然后是数据的源和接收器与它使用的连接管理器和目标表/变量一起流动。
【讨论】: