推荐.NET教程: ASP.NET C# 开发环境 Ajax教程 控件开发 统计报表 数据库 Web服务 安装部署 CommunityServer NHibernate DataGrid/GridView 实用代码 VS2005
示例源码 MVC/三层 SqlHelper 入门源码 开源 CMS Ajax/Atlas C#.net 毕业设计 源码 经典代码 商业 本站作品 持久层 随书源码 WebService 英文/汉化 Asp.net2.0

阿牛·乐园

每天进步一点点

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  80 随笔 :: 14 文章 :: 389 评论 :: 13 引用
今天调程序,执行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 行)

*/
posted on 2006-05-25 15:53 阿牛 阅读(209) 评论(0)  编辑 收藏 网摘 所属分类: TSQL




标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
Google站内搜索

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》

相关文章:

相关链接: