笔记之:

例子:
表结构如下:

数据库DBA 的表A  

 
  
  1. UID   NAME  
  2. 1    aizzw
  3. 2    wukong 
  4. 3    zzw

数据库DBB 的表B:

 
  
  1. UID  NAME  
  2. 1   aizzw
  3. 5   wukong
  4. 7   zzw 

数据库DBB的表C:

 
  
  1. XID  XiaoMing  
  2. 1   小贝  
  3. 5   小宝  
  4. 7   小涵

要求:
1.表B中的name和表A中相同的名字的ID同步
2.当表B中ID变动时,表C中的ID相应的也需要更新
3.表A与表B,表C不是在同一个数据库
如:表B的zzw的ID为7,同步后zzw的UID由7变成3,同时表C的XID的7也要变成3

分析:
这个在表B上家一个过渡列,问题就变的简单多了
 

 
  
  1. --添加id_temp临时列  
  2. Alter table 表B add UID_temp int 
 
  
  1. --同步UIDUID_temp=UID备用  
  2. update 表B set UIDUID_temp=UID 
 
  
  1. --查看UID_temp临时列  
  2. select UID,UID_temp from AccountTable 
 
  
  1. --同步与DBB相同账号的UID  
  2. update 表B set 表B.UID=BBB.UID  
  3. from BigS.dbo.表B BBB  
  4. where BBB.UID=表B.UID  
 
  
  1. --同步表C的XID  
  2. update DBB.dbo.表C set 表C.XID = B.UID  
  3. from 表B B  
  4. where 表C.XID = B.UID_temp 
 
  
  1. --删除UID_temp临时列  
  2. Alter table 表B drop column UID_temp 

本文转自 idyllic_cyty 51CTO博客,原文链接:http://blog.51cto.com/aizzw/460449