2009-08-17 120 views
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包区分大小写?

+1

不,我不认为有这个办法。只需更新元数据。 – 2009-08-17 15:39:43

回答

0

您可以解决不断变化的情况下,在桌子上

  • 的SQL语句中列出列的基表通过获取数据从

    1. 查看。