2012-11-30 63 views
2

我在SQL Server 2008數據庫(10.0.2841)中有一列需要插入另一個數據庫(10.0.5500)。在我插入到目標數據庫之前,我必須確保該列僅包含windows-1252個字符。替換不符合某個編碼的字符

我目前使用SSIS包來做到這一點。我的源代碼查詢有一堆「替換」的工作,但它是醜陋的,很快就會無法維護。

select replace(replace(rep.......etc(column, 'º', ''), nchar(0x9D), ''), ......etc from table 

確實有更好的方法來做到這一點,但我不知道它是什麼。那麼,我該如何在我的查詢中(或者在一個腳本組件中?),「如果這裏有一個字符不能在這個編碼中工作,那麼在它的位置給我一個空字符串?」

回答

0

我假設您的sourcedb的排序規則與您的目標數據庫不同。也許你可以使用COLLATE將排序規則更改爲目標數據庫的排序規則。 例如:

SELECT 
    column COLLATE Latin1_General_CI_AS 
FROM table