表与表之间的更新问题

q520525745 2008-04-06 06:21:15
A表字段有a,b,c,d,e有数据
B表字段有a,b,c有大量数据
我想实现将B表所有数据导入A表重复的直接覆盖,请问如何实现
...全文
70 点赞 收藏 15
写回复
15 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
q520525745 2008-04-06
解决了多谢
回复
Limpire 2008-04-06
别名
回复
q520525745 2008-04-06
Y跟x是什么意思?
回复
Limpire 2008-04-06
1是什么意思
--------------------
1就是1,常量,如:
select 1,* from sysobjects


insert into A(a,b,c)
select a,b,c from B where A.a!=B.a
-------------------
上面写法错误,正确:

insert into A(a,b,c)
select y.* from B as y left join A as x on y.a=x.a where x.a is null
回复
q520525745 2008-04-06
insert into A(a,b,c)
select a,b,c from B where A.a!=B.a

好象我这样也可以实现 不过我第2句出错了,能否指教下该怎么写?
回复
q520525745 2008-04-06
[Quote=引用 9 楼 Limpire 的回复:]
(select 1 from A where a=y.a)
[/Quote]
请问这里的1是什么意思.
回复
Limpire 2008-04-06
--用别名
update x set x.b=y.b,x.c=y.c from A as x join B as y on x.a=y.a
insert A(a,b,c) select * from B as y where not exists (select 1 from A where a=y.a)
回复
q520525745 2008-04-06
出错...
回复
Limpire 2008-04-06
update A set A.b=B.b,A.c=B.c from A join B on A.a=B.a
insert A(a,b,c) select * from B where not exists (select 1 from A where a=B.a)
回复
q520525745 2008-04-06
能把大小写区分下 写的清楚点吗 谢谢
回复
Limpire 2008-04-06
update a set a.b.=b.b,a.c=b.c from a join b on a.a=b.a

insert a(a,b,c) select * from b where not exists (select 1 from a where a=b.a)
回复
q520525745 2008-04-06
不存在重复的 因为我设了a字段为主键
可否用update语句实现?
回复
piaoqifeng 2008-04-06
上述只是一个思路。
楼主没有给出详细需求。
B中有A中相同的,如果A中相同的有多条呢,如何处理
直接覆盖视为不插入,可以不

需求?
回复
piaoqifeng 2008-04-06
insert into a(a,b,c)
select a,b,c from b
where a+b+c not in
(select a+b+c from a)
回复
Limpire 2008-04-06
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-04-06 06:21
社区公告
暂无公告