2009-10-23 119 views
0

我需要將非Unicode的SQL Server 2005數據庫轉換爲基於Unicode的數據庫。我有數百個存儲過程,當然數據存儲在varchar中。我知道我需要將所有數據類型更改爲unicode等效(varchar to nvarchar),但是我不必更改存儲的特效的寫入方式,還是繼續像以前一樣工作?我正試圖弄清楚爲什麼需要從非Unicode到具有許多存儲過程的大型數據庫進行unicode更改。將非Unicode的SQL Server數據和存儲的過程轉換爲Unicode

回答

3

是的,你需要更新你的數據和存儲過程,但要記住的重要一點是你只需要將你的列的一些更改爲UNICODE。對於任何「內部」的東西,你不需要支付UNICODE的費用。

這項改變有很多工作要做,但不要盲目改變一切。我之前一直在接受這種改變,這很痛苦。 (使用nvarchar(1)存儲'y'和'n'是愚蠢的。)

+0

請注意,在SQL Server 2008 R2中,如果使用數據壓縮,則只支付實際Unicode數據的Unicode成本。壓縮算法非常智能 - 它不會浪費ASCII字符的兩個字節,並且通過存儲偏移量而不是實際的2字節字符,即使在Unicode數據上也可以實現顯着壓縮。將其添加到詞典的頂部,以及其他使用數據壓縮獲得的壓縮。當然,你支付壓縮/解壓的罰款,所以總是測試。一些博客(前三名):http://is.gd/4yleO – 2009-10-23 23:37:40

+0

我的失望是UNICODE壓縮是僅限於Enterprise。這是SQL Server背後的一個問題,現在他們正在迎頭趕上一個很好的解決方案,但是它們限制在Enterprise(我不會使用它)。 – 2009-10-24 05:29:57