0
在我们的环境中,案件有时会发生变化。 ID变成ID然后变成ID。区分大小写SSIS
发生这种情况时,我的SSIS包(sql server 2008)失败,因为列名与预期不一样。
这是一种重现问题的方法。在你的开发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源和OLEDB目标指向ToonCharactes和连接绿色箭头,并做列映射。
运行包并传输3行。
现在,在SSMS中,将CartoonCharacterID更改为cartooncharacterid(全部小写)。
尝试再次运行包。它炸弹。 :(它说VS_NeedNewMetadata,这是当然的,因为CASE改变。:(
有没有办法让SSIS包元区分大小写?
不,我不认为有这个办法。只需更新元数据。 – 2009-08-17 15:39:43