Sql 两表同步更新问题

jiuni31 2013-11-04 05:27:04
表1
ID NAME TEL MAIL C1 C2 C3 C4 .....
1 XX 123 M3MM.COM
2 XX 113 M1MM.COM
3 XX 6123 M6MM.COM
4 XX 133 MM4M.COM
5 XX 43 MM5M.COM

表2
ID NAME TEL MAIL C1 C2 C3 C4 .....
1 XX 123 M3MM.COM
2 XX 113 M1MM.COM
3 XX 6123 M6MM.COM
4 XX 133 MM4M.COM
5 XX 43 MM5M.COM

实现:表2同步表1的数据。
现在已经实现了 删除和插入。 更新有什么简单方法实现? 比如表1 第3条数据的 TEL更改了。同步的时候需要更新表2. 还要要求速度。数据量很大。总不能全部更新一遍吧
这只是简单的。真是表中有很多很多列。
...全文
466 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiuni31 2013-11-11
  • 打赏
  • 举报
回复
解决了 ,同步只同步当前时间减三天的数据。 因为要求不是事实更新。所以不能用触发器。
LongRui888 2013-11-04
  • 打赏
  • 举报
回复
1、你的列有很多,而且不确定,哪些列会改变,那就用sql server的数据库复制技术来实现把,可以设定同步时间,比如每天同步一次,每次在晚上8点,他可以把t1表的数据变化,同步到表2中。 2、你的这种需求,最后只能是通过update来实现,而且像你说的数据量很大,而且你不想用实时同步,那么每次同步的时候,肯定需要花大量的时间,开销肯定不会小,所以最好在晚上业务不忙的时候,进行更新,因为晚上系统比较空闲,cpu、内存、磁盘,不用白不用,充分利用各种资源来进行这种批量操作。
唐诗三百首 2013-11-04
  • 打赏
  • 举报
回复
引用 5 楼 jiuni31 的回复:
项目需求不是时时同步。所以不能用触发器。 需求是每天执行SQL语句来同步。数据很大。每条都更新一遍有点不太现实
用复制工具进行同步,复制类型选事务型(只同步差异部分),设定期执行同步.
jiuni31 2013-11-04
  • 打赏
  • 举报
回复
项目需求不是时时同步。所以不能用触发器。 需求是每天执行SQL语句来同步。数据很大。每条都更新一遍有点不太现实
jiuni31 2013-11-04
  • 打赏
  • 举报
回复
除了触发器呢? 就是用SQL 语句来update。
ai_li7758521 2013-11-04
  • 打赏
  • 举报
回复
触发器控制灵活,是一种较好的选择。缺点是会影响数据更新速度。
唐诗三百首 2013-11-04
  • 打赏
  • 举报
回复
方法1,用复制工具进行同步,复制类型选事务. 方法2,在表1上建update触发器,

create trigger tr_表1 on 表1 
for update
as
begin
 update b
  set b.[NAME]=a.[NAME],
      b.[TEL]=a.[TEL],
      b.[MAIL]=a.[MAIL],
      b.[C1]=a.[C1],
      b.[C2]=a.[C2],
      b.[C3]=a.[C3],
      b.[C4]=a.[C4]
  from inserted a
  inner join 表2 b on a.ID=b.ID
end
發糞塗牆 2013-11-04
  • 打赏
  • 举报
回复
两表有外键不?有外键就级联更新,没有的话就在表1上搞个触发器更新表2

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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