2013-05-10 33 views
1

環境是SQL Server 2012的,我要一個CLR過程返回的結果列改變從varcharnvarchar,但我不知道是否能在varchar代碼頁中找到這些字符總是轉換爲unicode中的同一個字符,也是另一種方式。不好的例子是,如果有人會從nvarchar的列中得到程序的結果,並將它放在varchar列的數據庫中。問題是,他們會一直正確地轉換嗎?VARCHAR到的NVarChar和背部

回答

2

VARCHAR特定於您的系統代碼頁。 NVARCHAR保存Unicode字符。 Unicode始終是任何遺留代碼頁的超集。因此,您可以期望從VARCHAR - > NVARCHAR進行轉換以正確映射。但是,如果您的NVARCHAR字符串稍後包含在舊版代碼頁中找不到的Unicode字符,那麼在轉換回VARCHAR時,這些字符將會丟失。

如果可能,您應該避免這種類型的轉換。將表列更新爲NVARCHAR。

+0

是的,這是我想聽到的。我以爲是我的自我,但想聽聽意見。問題是可能有使用這個過程的邏輯,但這是因爲nvarchar不能正常工作而導致的。該過程用於將csv字符串轉換爲關係,但是在輸入中也可以只有Unicode字符,並且此轉換是必需的。那就是那個。 – 2013-05-10 19:19:04

相關問題