表与表之间的更新问题

q520525745 2008-04-06 06:21:15
A表字段有a,b,c,d,e有数据
B表字段有a,b,c有大量数据
我想实现将B表所有数据导入A表重复的直接覆盖,请问如何实现
...全文
121 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧