SSIS数据源中的源表结构更改

时间:2012-07-24 20:37:23

标签: sql-server-2008 ssis visual-foxpro

我正在使用SSIS将FoxPro表导入SQL Server 2008。源数据是我无法控制的专有数据库。让我调用我正在导入客户的表。

有时,客户的结构如下所示:

ID(int)

NAME(char(30))

ADDRESS(char(30))

CITY(char(20))

STATE(char(2))

ZIP(char(10))

CCNUM(char(16))

其他时候,它看起来像这样:

ID(int)

NAME(char(30))

ADDRESS(char(30))

CITY(char(20))

STATE(char(2))

ZIP(char(10))

CCPTR(char(100))

这个专有数据库基本上有2个不同版本的数据库。旧版本有一个名为CCNUM(信用卡号)的字段,它是一个基本的16字符字段。较新的版本用一个名为CCPTR的字段替换了该字段,该字段是一个100字符的字段,表示卡指针(实际信用卡号的加密值)。

这里的问题是每次我必须在具有这些不同表结构的2个数据集之间来回切换时,SSIS会爆炸,我必须进入并手动刷新元数据。

我的问题是,无论如何我可以让SSIS在运行时动态查找其中一个字段,并根据哪个字段,将正确的数据加载到SQL中的正确表结构中?

如果之前有人问过,请原谅我。我仍然是SSIS的新手,我试着寻找这个答案,但无济于事。

谢谢,

标记

2 个答案:

答案 0 :(得分:0)

简短的回答是否定的。 SSIS期望其源和目标组件的元数据没有重大变化。有一些方法可以通过.NET以编程方式对此进行影响,但这种方法忽视了这一点。

针对此问题的精心设计的解决方案是创建2个单独的数据流,将数据复制到共享的临时表中。使用此临时表作为源来转换数据并将其推送到最终的数据结构。

答案 1 :(得分:0)

如果你根据长度(100)构建你的包并在(16)上打开它,你应该只得到一个警告。你收到错误吗?