sql server2008,同一数据库里的两张不同的表怎么实现同步?
例如我数据库里有表aaa和表bbbaaa里有3个字段aida1a2bbb里有5个字段bidb1b2b3b4aid和bid分别是表aaa和表bbb的主键,不需同步。而是吧a...
例如我数据库里有表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里面的其它字段都为空即可 展开
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里面的其它字段都为空即可 展开
4个回答
展开全部
更新
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 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 改成字符串试下。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
“吧aaa中的a1字段的数据同步到b1,把a2字段中的数据同步到b1”?a1和a2都要与b1同步吗?你只关联了两表中的三个字段,当然只能更新关联的字段值。要实现两表同步(更新列、插入列)必须要关联需要更新表的主键。
追问
问题里面笔误,应该是“把aaa中的a1字段的数据同步到b1,把a2字段中的数据同步到b2”,只是单纯的两个字段对应同步,也就是说外部(网页程序)只是对aaa表进行操做,bbb进行相应的更新,不需要同步的字段留空
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个很简单吗 你对A表写个更新触发器就可以了 当A变有数据更新就可以直接更新B表了 这个很简单的 语法很简单 查下就有了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
触发器吧
追问
我知道要用触发器,但是可以写几行代码参考一下吗
追答
不好意思 触发器我也不是太懂 帮不了你
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询