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

这个SQL有关问题真难

2012-01-21 
这个SQL问题真难类似于表1:abcd.......1341.......1251.......0202.......0203.......0303...............

这个SQL问题真难
类似于表1:
a           b         c         d.......
1           3         4         1.......
1           2         5         1.......
0           2         0         2.......
0           2         0         3.......
0           3         0         3.......
.............
表有多列,多行记录

集合A:select   *   from   abc   where   a= '0 '   and   c= '0 '   and   b= '3 '

集合B:select   *   from   abc   where   a= '0 '   and   c= '0 '   and   b= '2 '
目标:修改所有集合A中b   字段数据为2
update   abc
set   b= '2 '
where     a= '0 '   and   c= '0 '   and   b= '3 '
怎么也不能修改,提示有重复记录,不能插入相同记录,明知道可能筛选出来的记录修改后可能与集合B的记录有交叉但不知道怎么改,请高手指点.
谢谢了.


[解决办法]
update abc
set b= '2 '
where a= '0 ' and c= '0 ' and b= '3 '
怎么也不能修改,提示有重复记录
==========
把"主键"或是"唯一键"去掉, 然后再修改.
[解决办法]
如果你把原有的b=3全部update为2,你的主键出现了重复,两种方法:要么你增加其他字段为主键,保持现有每条记录的唯一性;要么你先把现有数据导入临时表,去掉主键,合并或删掉主键重复的纪录之后导回原有表。

热点排行