T sql中字串前面加N的意思

2021-09-27 10:24:33 字數 568 閱讀 6479

比如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 了。

T SQL 字串前加 N 是什麼意思

比如select status n stopped 那麼其中的字串 stopped 前面為什麼要加 n 呢?而且我們發現有些地方加 n 與否都沒有影響,有些地方又必須加 n。n 在這裡表示 unicode,就是雙位元組字元。對於西文字元,用乙個位元組來儲存過足夠了,對於東方文字字元,就需要兩個位元組...

T SQL 字串前加 N 是什麼意思

轉 比如select status n stopped 那麼其中的字串 stopped 前面為什麼要加 n 呢?而且我們發現有些地方加 n 與否都沒有影響,有些地方又必須加 n。n 在這裡表示 unicode,就是雙位元組字元。對於西文字元,用乙個位元組來儲存過足夠了,對於東方文字字元,就需要兩個位...

T SQL字串前加N是什麼意思

t sql字串前加n是什麼意思 比如 select status n stopped 那麼其中的字串 stopped 前面為什麼要加 n 呢?而且我們發現有些地方加 n 與否都沒有影響,有些地方又必須加 n。www.2cto.com n 在這裡表示 unicode,就是雙位元組字元。對於西文字元,用...