T-SQL 字符串前加 N 是什么意思
比如 select @status = N'stopped'
那么其中的字符串 stopped 前面為什么要加 N 呢?而且我們發(fā)現(xiàn)有些地方加 N 與否都沒(méi)有影響,有些地方又必須加 N。
N 在這里表示 Unicode,就是雙字節(jié)字符。對(duì)于西文字符,用一個(gè)字節(jié)來(lái)存儲(chǔ)過(guò)足夠了,對(duì)于東方文字字符,就需要兩個(gè)字節(jié)來(lái)存儲(chǔ)。Unicode 為了統(tǒng)一、規(guī)范、方便、兼容,就規(guī)定西文字符也用兩個(gè)字節(jié)來(lái)存儲(chǔ)。
也就是說(shuō)加 N 就表示字符串用 Unicode 方式存儲(chǔ)。
但有時(shí)候加與不加都一樣,又是什么原因呢?這是由于自動(dòng)轉(zhuǎn)換造成的。
比如:
declare @status nvarchar(20)
select @status = N'stopped'
select @status = 'stopped'
實(shí)際上上述兩句賦值的結(jié)果是一樣的,因?yàn)樽兞款愋途褪?nvarchar(Unicode 類型)。
而有些地方(比如:sp_executesql 的參數(shù))不能自動(dòng)轉(zhuǎn)換,所以需要加 N 了。
總結(jié)
以上是生活随笔為你收集整理的T-SQL 字符串前加 N 是什么意思的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: matlab impyramid,图像
- 下一篇: 从零开始学WEB前端——VUE介绍