【SQL SERVER】T-SQL 字符串前加 N 是什么意思


比如 select @status = N'stopped'

那么其中的字符串 stopped 前面為什么要加 N 呢?而且我們發現有些地方加 N 與否都沒有影響,有些地方又必須加 N。

N 在這里表示 Unicode,就是雙字節字符。對於西文字符,用一個字節來存儲過足夠了,對於東方文字字符,就需要兩個字節來存儲。Unicode 為了統一、規范、方便、兼容,就規定西文字符也用兩個字節來存儲。

也就是說加 N 就表示字符串用 Unicode 方式存儲。

但有時候加與不加都一樣,又是什么原因呢?這是由於自動轉換造成的。

比如:
declare @status nvarchar(20)
select @status = N'stopped'
select @status = 'stopped'

實際上上述兩句賦值的結果是一樣的,因為變量類型就是 nvarchar(Unicode 類型)。

而有些地方(比如:sp_executesql 的參數)不能自動轉換,所以需要加 N 了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM