请教一个比较复杂的SQL语句问题,高手请进

ncuhzh 2006-02-11 05:05:33
有这样一个情况:存在表A和表B,且两张表完全一样,但是由于用户的误操作把表A的部分数据修改了,现在我想用表B中的数据对表A中的数据进行还原,请教各位如何实现
...全文
193 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ryan_www 2006-02-20
  • 打赏
  • 举报
回复
我也想问和LZ类似的问题, 关键在于怎样写这条update set from select 语句,同时不需要列举所有的字段,也就是实现单体记录的整个替换
ncuhzh 2006-02-13
  • 打赏
  • 举报
回复
楼上的效率也很低哦,感觉是把数据重新写一遍,又或者我有几百个列呢
-狙击手- 2006-02-13
  • 打赏
  • 举报
回复
update b set col1 = a.col1 ,col2 = a.col2 from a, b where a.id = b.id
ncuhzh 2006-02-13
  • 打赏
  • 举报
回复
谢谢各位的支持,但是好像大家的答案效率都很低下,有没有更为高效的方法呢?首先是要找出A表与B表不同的数据,然后才用B表中的数据对A表进行更新,如A表和B表开始都是这样的:
ID column1 column2
1 one O
2 two T
但是A表可能现在是
ID column1 column2
1 one W
2 three T
目的是要用B表中的数据使A表还原,两个表的主键为ID
JackyBeauty 2006-02-13
  • 打赏
  • 举报
回复
因为你只是一次性的工作,效率的因素在这里不是太重要,楼主不要太极端哦
lxzm1001 2006-02-12
  • 打赏
  • 举报
回复
有主键
insert a select * from b where id not in(select id from a)
JackyBeauty 2006-02-11
  • 打赏
  • 举报
回复
如果两个表可以按照某个唯一字段关联,并且这个唯一字段没有被修改的话
可以用Update A set A.Field=B.Field,...... From B Where A.ID=B.ID
samfeng_2003 2006-02-11
  • 打赏
  • 举报
回复
你的表有没有主键呢?
ncuhzh 2006-02-11
  • 打赏
  • 举报
回复
这样的动作也太大了吧,假如我的表A是不允许删除的呢?可不可以用更为有效的方法啊,请高手指教
wangdehao 2006-02-11
  • 打赏
  • 举报
回复
truncate table 表A

insert 表A select * from 表B
lsqkeke 2006-02-11
  • 打赏
  • 举报
回复
delete 表A

insert 表A select * from 表B

?

22,302

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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