求一条更新语句.
A表
线别 | 代码 | 名称
----------------------
01 | 207 | 北京
01 | 208 | 郑州
01 | 209 | 南京
30 | 101 | 北京
30 | 103 | 石家庄
30 | 104 | 邯郸
30 | 108 | 郑州
B表
标志符 | 线别 | 代码 | 名称
----------------------
A07 | 01 | 207 | 北京
A07 | 01 | 208 | 郑州
A07 | 01 | 209 | 南京
AS2 | 30 | 101 | 北京
AS2 | 30 | 103 | 天津
AS2 | 30 | 104 | NULL
AS2 | 30 | 108 | 郑州
A表是标准字典表..里面含有统一的线路,代码.名称.线路和代码能确定一个站名.
B表的线别和代码是正确的..但是名称不一定正确...且同一组数据的标识符是一样的..
现在要根据A表把B表中数据按标识符把站名同步过来...
如何写update语句..
[解决办法]
update a set 名称=b.名称 from b where a.代码=b.代码
[解决办法]
update b
set b.名称=a.名称
from a inner join b on a.线别=b.线别 and a.代码=b.代码
where b.名称<>a.名称
[解决办法]
A表是基础表,应该做联合主键约束,即(线别、代码)两个字段做联合主键,不做主键会带来很多麻烦,统计结果导致不正确
如果已经存在,应该先删除重复记录,然后立即加约束