首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql server中varchar型处理,该怎么解决

2012-09-13 
sql server中varchar型处理表结构:有两个表:A(ysdzt,zt)B(ysdzt),其中ysdzt是varchar(60)zt是int,且A中数

sql server中varchar型处理
表结构:
  有两个表:A(ysdzt,zt) B(ysdzt),其中ysdzt是varchar(60) zt是int,且A中数据明显多于B中
需求:
  现我要更改A中zt字段,条件是ysdzt是B中的。
我用的语句是:

SQL code
  update A set zt=8 where ysdbh in(select ysdbh from B with(nolock))

出现的问题大概是这样的
  无法解决 equal to 运算中 "Chinese_PRC_CI_AS" 和 "Chinese_PRC_CS_AI" 之间的排序规则冲突。

好像int型数据才可以那样,小弟不知道varchar以及nvarchar要怎么比较 in ,not in ,= 望大牛们帮忙。

[解决办法]
SQL code
update A set zt=8 where ysdbh in(select ysdbh from B with(nolock) COLLATE  Chinese_PRC_CI_AS)
[解决办法]
SQL code
-->tryupdate A set zt=8 where ysdbh COLLATE Chinese_PRC_CI_AS in(select ysdbh from B with(nolock))--orupdate A set zt=8 where ysdbh COLLATE Chinese_PRC_CI_AI in(select ysdbh from B with(nolock))
[解决办法]
SQL code
update Aset zt = 8from bwhere ysdzt = B.ysdzt 

热点排行