今天调程序,执行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 行)

*/

varchar,nvarchar不同呀。小心出错相关推荐

  1. 如何在SQL Server VARCHAR / NVARCHAR字符串中插入换行符

    我没有看到关于这个主题的任何类似的问题,我不得不研究这个我现在正在做的事情. 以为我会发布答案,以防其他人有同样的问题. #1楼 我来到这里是因为我担心我在C#字符串中指定的cr-lfs没有在SQl ...

  2. char(nchar)与varchar(nvarchar)的区别以及选择

    char(或是nchar)与varchar(或是nvarchar)是数据库中最常见的用于存储字符数据的数据类型,由于它们大多数特性相同,因此在选择使用哪种类型字符数据时,可能会有一些疑惑.不过,通过一 ...

  3. 谈谈char ,nchar,varchar,nvarchar 和Uniqueidentifier

    在SQL server数据库中这几个类型应该是比较常用的,这篇文章主要也是和大家一起讨论下这几个类型. 先重点看前面4个:char ,nchar,varchar,nvarchar Msdn解释如下: ...

  4. Sql Server char nchar varchar nvarchar 区别

    一. 用快捷键Alt+F1 打开的表结构, 我们看到的length, nchar和nvarchar 需要除以2才是储存的真正长度 二 . 类型前缀的意思 1.有var前缀的,表示是实际存储空间是变长的 ...

  5. char varchar nvarchar区别

    char char是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后面补空值.当你输入的字符大于指定的数时,它会截取超出的字符.nvarchar(n) 包 ...

  6. char nchar varchar nvarchar varchar2区别

    char(n):长度不可变,长度为n个字节,非Unicode字符 nchar(n):长度不可变,长度为2n个字节,Unicode字符 varchar(n):长度可变,长度为n个字节,非Unicode字 ...

  7. 数据库中char, varchar, nvarchar的差异

    1. char      固定长度,最长n个字符. 2. varchar      最大长度为n的可变字符串. (n为某一整数,不同数据库,最大长度n不同) char和varchar区别:       ...

  8. SQL char,nchar,varchar,nvarchar区别与使用

    1,char,varchar,nchar,nvarchar区别 1,CHAR:CHAR存储定长数据很方便,CHAR字段上的索引小笼包级高,比如定义char(10),name不论你存储的数据是否达到了1 ...

  9. char/nchar、varchar/nvarchar、char/character区别

    一直对这几个数据类型很迷惑,其实以前看明白过,但是时间长了又忘了,今天再次查了查资料,仔细研究了一下char.varchar.nchar和nvarchar,然后写下来以备以后查阅. 如果你想简单的了解 ...

最新文章

  1. 微信小程序一些知识点
  2. golang map 删除 清空
  3. Marketing Cloud contact里和twitter相关的数据
  4. 【应用】如何更好的简化工业现场采集控制?
  5. 前端学习(2322):angular内容介绍
  6. python3 Xml操作
  7. 属格-my father's car和whose_32
  8. javaee互联网轻量级框架整合开发_企业开发:Spring框架的简易、高效切入篇
  9. 为什么要有事件循环机制(Event Loop)
  10. 2015第19周五《象与骑象人》《瞬变》读书笔记
  11. 迅雷离线下载节点分布
  12. react前端显示图片_react.js - 关于react引用本地静态资源图片的问题
  13. c语言程序中u8是什么意思,c – __u8和uint8_t之间的区别
  14. 解决电脑com口被占用与修改COM号问题
  15. servlet使用监听器统计网站在线人数
  16. 互芯裁员,华平投资半导体四中一
  17. 物联网,已经到来的产业“风口”
  18. 第八章-磁盘存储器管理(SWUST操作系统期末复习试题)
  19. 关于PD4ML解决中文乱码的问题
  20. 【Python入门教程】第78篇 原始字符串

热门文章

  1. 免费!「神策 2021 数据驱动大会」西安大数据技术专场来袭
  2. 面向对象开发===继承特点
  3. Winform开发框架之数据曲线报表
  4. 【Linux】linux下gzip的压缩/解压缩详解
  5. 之一:CABasicAnimation - 基本动画
  6. 批量创建同义词并授权
  7. 分享转帖 -- 考勤的背后 (加注个人点评哦)
  8. LiveMigration之四配置高可用虚拟机
  9. altas(ajax)控件(二十三):等级选择控件Rating
  10. 《企业的边界》的书摘