在我们的环境中,有时情况会发生变化。 Id变为ID,然后变为id。
发生这种情况时,我的SSIS包(sql server 2008)失败,因为列名与预期的情况不同。
这是一种重现问题的方法。在Dev SQL Server中,创建以下表:
DROP Table dbo.CartoonCharacters
Go
Create Table dbo.CartoonCharacters
(
CartoonCharacterID INT,
CartoonCharacterName VarChar (100)
)
DROP Table dbo.ToonCharacters
Go
Create Table dbo.ToonCharacters
(
ToonCharacterID INT,
ToonCharacterName VarChar (100)
)
INSERT INTO dbo.CartoonCharacters VALUES
(1, 'Don Duck')
,(2, 'Mike Mouse')
,(3, 'Rog Rabbit')
GO
使用单个数据流任务创建一个SSIS包,向其中添加指向CartoonCharacters的OLE DB源和指向ToonCharactes的OLEDB目标,并连接绿色箭头并执行列映射。
运行包并传输3行。
现在,在SSMS中,将CartoonCharacterID更改为cartooncharacterid(全部小写)。
尝试再次运行该程序包。它炸弹了。 :(它说VS_NeedNewMetadata。当然,这是因为CASE改变了。:(
有没有办法让SSIS包 元数据 不区分大小写?
答案 0 :(得分:0)
您可以通过从
获取数据来解决基表更改案例的问题