日期:2014-05-19  浏览次数:20358 次

请教大家一个Dts工程题,还是很有难度的,在线等待
最近学习DTS,有很多不懂的知识,其中有一道工程题:


有2个表:table_a和table_b。
他们的结构都是相同的,即:
(
  id             int                     primary   key,
  name         varchar(50),      
  date         datetime
)

id主键
date用来记录table_a变化时间,即插入新行、更改name,date始终取当前值getdate()。

现在假定table_a不允许删除,我想table_a与table_b同步,即table_a里面有的行,而table_b里面没有,则插入table_b;
如果table_a.name有更改,则更改相应的table_b.name。如何用数据转换服务(DTS)来实现呀?


------解决方案--------------------
up
------解决方案--------------------
做觸發器啊﹗﹗
------解决方案--------------------
DTS不是用来做这个的吧?应该是楼上说的触发器才对
------解决方案--------------------
要保持同步,最好在a上建觸發器
------解决方案--------------------
在DTS直接下SQL command好了,拖一個SQL connetcion,一個Execute SQL Task


update table_b
set name=table_a.name
from table_b,table_a
where table_b.id=table_a.id

insert into table_b
select * from table_a
where not exists(select 1 from table_b where id=table_a.id)
------解决方案--------------------
......
這跟數據庫是不是同一個沒有關係啊
DTS里的sql connetion,別說不同db了,就是不同server也可以聯啊.
另外,同一server不同db的話,
只需將table_a/table_b 寫成 northwind.dbo.table_a/tempdb.dbo.table_b即可.