t-sql中字符串前加N代表什么意思

Posted BrokenIce

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 了。




以上是关于t-sql中字符串前加N代表什么意思的主要内容,如果未能解决你的问题,请参考以下文章

T-SQL 语句中的前缀 N 是啥意思,啥时候应该使用它?

sql server 存入中文前加N

MFC中 MessageBox 函数字符串前加 L 啥意思??

Python中字符串前的字母

python 字符串前加u,r,b的含义

PHP如何输出换行符