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]GOselect * from TESTinsert 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=@s2select 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=@s2select 1 where N'BSS?ê?§ID'=N'BSSÕÊ»§ID'/**//*(所影响的行数为 1 行)(所影响的行数为 0 行)*/ QQ:273352165 evlon#126.com 转载请注明出处。