2013-02-20 210 views
1

我有兩個varcharfirst_namelast_name表。SQL Server 2005:將varchar轉換爲nvarchar問題

現在我需要將這些列轉換爲nvarchar以支持UTF-8。

我在這些列的SSMS中選擇nvarchar數據類型,當我嘗試輸入一些UTF-8數據時,我的符號轉換爲問號。例如,如果我輸入йцукен(烏克蘭語),它將被轉換爲??????

什麼問題以及如何解決?

謝謝。

+0

你看過http://stackoverflow.com/q/761036/806549 ? – 2013-02-20 16:22:15

+1

SQL Server nvarchar是UTF-16。看到http://support.microsoft.com/kb/232580 – muhmud 2013-02-20 16:26:09

回答

5

當您要將nvarchar文字插入到數據庫表中時,您必須使用N'..'前綴

所以使用

INSERT INTO dbo.YourTable(First_Name) 
VALUES(N'йцукен') 

使這個字符串將作爲的unicode字符串對待

如果你不使用N'..'符號,你真的插入非Unicode字符串文字 - 這將導致這些轉換爲?

+1

每一個小幫助。這是我們每天都會忘記的事情... +1 – Kaf 2013-02-20 16:46:08

+0

不幸的是,它不適用於我的情況。即使當我嘗試用'N'字符更新表格時,它也會顯示問號。例如,UPDATE mytable SET first_name =N'йцукен' WHERE id = '10'將像以前一樣保存問號。儘管如此,當我用nvarchar列創建新表時,一切正常。 – user1048261 2013-02-21 09:25:33

相關問題