處理 Unicode 字串常數時,必需在 Unicode 字串加上前置詞 N

  • 367
  • 0

處理 Unicode 字串常數時,必需在 Unicode 字串加上前置詞 N

在寫SQL時,參考網路上處理字串的範例,有的有加N,有的沒有,常讓我一頭霧水。

後來去查了一下,發現如果字串為Unicode格式,如宣告為ntext、nchar與nvarchar,必須於字串前加上大寫N作為前置詞,以利SQL SERVER判別字串。

使用上需注意以下狀況:

  1. 如果不是Unicode的字串前面加前置詞 N,除非在用戶端的 ANSI 字碼頁和 SQL Server 字碼頁相符合的狀況下,否則可能與沒加N造成不同的結果,所以建議不要亂加。
  2. 如果為Unicode的字串而未加前置詞 N,可能因SQL SERVER判別錯誤,造成字串資料遺失。

參考資料:

http://support.microsoft.com/kb/239530/zh-tw