sql server2008,同一数据库里的两张不同的表怎么实现同步?

例如我数据库里有表aaa和表bbb
aaa里有3个字段 aid a1 a2
bbb里有5个字段 bid b1 b2 b3 b4
aid和bid分别是表aaa和表bbb的主键,不需同步。而是吧aaa中的a1字段的数据同步到b1,把a2字段中的数据同步到b1。

也就是说aaa表里有数据变动时(包括更新列、插入列),bbb表里也能有相应的更新列和插入列。

请高手指教,先谢了!!
1楼谢了,我也知道要用触发器,但是怎么用呢?可以提示一下吗?有代码就更好了

2楼大哥不好意思,应该是“把aaa中的a1字段的数据同步到b1,把a2字段中的数据同步到b2”,bbb里面的其它字段都为空即可

第1个回答  推荐于2016-06-26
更新
create trigger up_table on aaa
for update
as
if update(a1)or update(a2)
begin
update t2
set b1=t1.a1,b2=t1.a2
from inserted t1,
bbb t2
where t1.aid=t2.bid
end
插入
create trigger in_table on aaa
for insert
as
insert into bbb(b1,b2)
select a1,a2 from inserted
end追问

插入记录触发器我是这样写的:
create trigger in_table on aaa
for insert
as
begin
insert into bbb(b1,b2)
select a1,a2 from inserted aaa
end
go

提示错误:
消息 311,级别 16,状态 1,过程 in_table,第 7 行
不能在 'inserted' 表和 'deleted' 表中使用 text、ntext 或 image 列。

追答

a1,a2你的两个字段类型为text、ntext 或 image 改成字符串试下。

本回答被提问者和网友采纳
第2个回答  2012-10-04
“吧aaa中的a1字段的数据同步到b1,把a2字段中的数据同步到b1”?a1和a2都要与b1同步吗?你只关联了两表中的三个字段,当然只能更新关联的字段值。要实现两表同步(更新列、插入列)必须要关联需要更新表的主键。追问

问题里面笔误,应该是“把aaa中的a1字段的数据同步到b1,把a2字段中的数据同步到b2”,只是单纯的两个字段对应同步,也就是说外部(网页程序)只是对aaa表进行操做,bbb进行相应的更新,不需要同步的字段留空

第3个回答  2012-10-05
这个很简单吗 你对A表写个更新触发器就可以了 当A变有数据更新就可以直接更新B表了 这个很简单的 语法很简单 查下就有了
第4个回答  2012-10-04
触发器吧追问

我知道要用触发器,但是可以写几行代码参考一下吗

追答

不好意思 触发器我也不是太懂 帮不了你

相似回答