zoukankan      html  css  js  c++  java
  • 【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 了。

  • 相关阅读:
    洛谷 P3391文艺平衡树 【fhq_treap】
    食物链(转自yekehe2002大神)
    TX
    黑匣子——KEY
    Splay初学习
    BZOJ2330_糖果_KEY
    BZOJ3224_普通平衡树_KEY
    BZOJ2730_矿场搭建_KEY
    BZOJ1452_Count_KEY
    初识主席树_Prefix XOR
  • 原文地址:https://www.cnblogs.com/wywnet/p/3468163.html
Copyright © 2011-2022 走看看