表更新,什么方法最好?

xuguv 2013-06-13 09:17:21
一个是原表(其实是个视图,由多个表组成),字段如下
关键字段:ID1,ID2,其中ID1+ID2是唯一的
其他字段col1,col2……


一个是新表,字段如下
主键:ID
其他字段:col1,col2……
新表的ID跟原表不一样,是根据原表的ID和ID2来生成。新表的内容其实是这样的
主键:ID
其他字段:原表ID2,原表ID2,原表其他字段col1,col2……

两个表都有上千万条记录。

现在原表里面某一条记录的某个其他字段进行了改变。要求新表对应的字段也跟着变

由于两个表跨不同的服务器,不同的数据库。所以目前用的是链接服务器做关联。所以触发器什么的都没有用。

请问有什么好的sql语句,执行起来效率比较好?
...全文
149 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzw_0736 2013-06-18
  • 打赏
  • 举报
回复
触发器為何沒用,不明白.
old_gunchinese 2013-06-17
  • 打赏
  • 举报
回复
好像只能用LZ的方法写。最好是触发器。
---涛声依旧--- 2013-06-13
  • 打赏
  • 举报
回复
将update语句放到存储过程里去
xuguv 2013-06-13
  • 打赏
  • 举报
回复
我用update 新表 set col1=原表col1,col2=原表col2…… from 新表 ,原表 where 新表ID1=原表ID1 and 新表ID2=原表ID2 and(新表col1<>原表col1 or 新表col2=原表col2……) 这样写,是不是效率很差? 原表的数据库我们没法去动啊。
gogodiy 2013-06-13
  • 打赏
  • 举报
回复
写个存储过程,放在一个事务里面。

SET XACT_ABORT ON

BEGIN TRANSACTION

--修改本地表记录

--通过链接服务器修改其他服务器表记录

COMMIT TRANSACTION

34,593

社区成员

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

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