2010年10月18日 星期一

SQL Server 中處理 Unicode 字串

ACCESS是用UNICODE來存儲內容的,因此往裡面存放各種UNICODE 字符都不會出問題。 而如果向MSSQL 中存放的話有可能變成???難道MSSQL不支持UNICODE ,並非如此。而如果向SQL Server 有支援Unicode字。必須符合以下兩個條件。
1. 使用支援Unicode字元的資料型別來儲存資料。
在Microsoft SQL Server 中 ,以下資料型別支援Unicode資料:在Microsoft SQL Server 中 ,以下資料型別支援Unicode資料:
nchar nchar
nvarchar nvarchar
ntext ntext
2. 您在SQL Server 中處理Unicode字串常數時,必須在所有Unicode字串之前加上大寫字母N。
請參考以下文件:請參考以下文件: 
參考資料:http://support.microsoft.com/kb/239530/zh-tw

INF:SQL Server 中的Unicode字串常數需要N 前置詞 INF:SQL Server 中的Unicode字串常數需要N前置詞
當您在SQL Server 中處理Unicode字串常數時,必須在所有Unicode字串之前加上大寫字母N。 「N」這個前置詞代表的是SQL-92 標準中的「國際語言」(National Language),並且必須為大寫。 如果您沒有在Unicode字串常數前面加上N 作為前置詞,則SQL Server 會在使用字串之前將它轉換成SQL Server 所安裝的字碼頁。同時您不能使用無法傳遞Unicode的程式來Insert Unicode字串 . 另外您的Server也必須有該相關的codepage, 否則無法顯示字串 。

沒有留言:

張貼留言