• varchar,nvarchar不同呀。小心出错


    今天调程序,执行SQL老是报错。最终发现是 varchar 和 nvarchar 造成的。郁闷。
    本来没有这个问题,但是接口使用方传过来的字串编码错误,导致乱码。
    CREATE TABLE [TEST] (
        
    [nn] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
        
    CONSTRAINT [PK_TEST] PRIMARY KEY  CLUSTERED 
        (
            
    [nn]
        )  
    ON [PRIMARY] 
    ON [PRIMARY]
    GO

    select * from TEST

    insert into TEST(nn)
    values(N'BSS?ê?§ID')

    insert into TEST(nn)
    values(N'BSSÕÊ»§ID')
    /*
    服务器: 消息 2627,级别 14,状态 1,行 1
    违反了 PRIMARY KEY 约束 'PK_TEST'。不能在对象 'TEST' 中插入重复键。
    语句已终止。

    */


    declare @s nvarchar(50)
        ,
    @s2 nvarchar(50)

    select @s =N'BSS?ê?§ID' , @s2 = N'BSSÕÊ»§ID'

    select 1 where @s=@s2

    select 1 where N'BSS?ê?§ID'=N'BSSÕÊ»§ID'
    /*

    (所影响的行数为 0 行)


    (所影响的行数为 0 行)
    */


    declare @s varchar(50)
        ,
    @s2 varchar(50)

    select @s =N'BSS?ê?§ID' , @s2 = N'BSSÕÊ»§ID'

    select 1 where @s=@s2

    select 1 where N'BSS?ê?§ID'=N'BSSÕÊ»§ID'
    /*

    (所影响的行数为 1 行)


    (所影响的行数为 0 行)

    */
    QQ:273352165 evlon#126.com 转载请注明出处。
  • 相关阅读:
    驾照暂时不用年审,放心了
    痛筋
    摘枣
    当了一回山村教师
    补贴山村学校照片
    心中无敌,无敌于天下
    山路
    学会珍惜
    写给部分美女们
    不打羽毛球好多年
  • 原文地址:https://www.cnblogs.com/evlon/p/409049.html
Copyright © 2020-2023  润新知