2009-08-17 168 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. 查看。