如何实现多个SQL数据库同样结构的表同步更新!
一台电脑上有5个数据库A1,A2,A3,A4,A5,这五个数据库里都有相同结构的表table1和table2,现在想要实现任意一个数据库中的table1\table2记录...
一台电脑上有5个数据库A1,A2,A3,A4,A5,这五个数据库里都有相同结构的表table1和table2,现在想要实现任意一个数据库中的table1\table2记录增加减少或者修改,同时更新其他4个数据库记录!
求教高手
只有这2张表的结构是一样的,有多个系统,每个系统一个数据库,这2张表每个系统都要用而且一个系统中更新,其它的要同步更新!! 展开
求教高手
只有这2张表的结构是一样的,有多个系统,每个系统一个数据库,这2张表每个系统都要用而且一个系统中更新,其它的要同步更新!! 展开
9个回答
展开全部
在每个数据库的table1\table2都建立插入、删除、修改触发器
如在A1上
ceate trigger dbo.table1_u on A1.dbo.table1 for insert,update,delete as
IF @@rowcount = 0 RETURN
declare @no_i int -- 假设no为关键字
--declare 其他字段
declare @no_d int -- 假设no为关键字
--declare 其他字段
--赋值
select @no_i =no ,--其他值
from inserted
select @no_d =no ,--其他值
from deleted
--判断@no_d,@no_i 是否在A2,A3,A4,A5的表中存在
--1、如果@no_d,@no_i 都存在,则用新值更新A2,A3,A4,A5的talbe1
--2、如果@no_d不存在@no_i存在,则将新值插入A2,A3,A4,A5的talbe1
--3、如果@no_d存在@no_i不存在,则删除A2,A3,A4,A5的talbe1对应的值
if exists(select 1 from A2.dbo.talbe1 where no = @no_d) and
exists(select 1 from A2.dbo.talbe1 where no = @no_i)
begin
--修改A2数据库的表
end
...............................
如在A1上
ceate trigger dbo.table1_u on A1.dbo.table1 for insert,update,delete as
IF @@rowcount = 0 RETURN
declare @no_i int -- 假设no为关键字
--declare 其他字段
declare @no_d int -- 假设no为关键字
--declare 其他字段
--赋值
select @no_i =no ,--其他值
from inserted
select @no_d =no ,--其他值
from deleted
--判断@no_d,@no_i 是否在A2,A3,A4,A5的表中存在
--1、如果@no_d,@no_i 都存在,则用新值更新A2,A3,A4,A5的talbe1
--2、如果@no_d不存在@no_i存在,则将新值插入A2,A3,A4,A5的talbe1
--3、如果@no_d存在@no_i不存在,则删除A2,A3,A4,A5的talbe1对应的值
if exists(select 1 from A2.dbo.talbe1 where no = @no_d) and
exists(select 1 from A2.dbo.talbe1 where no = @no_i)
begin
--修改A2数据库的表
end
...............................
展开全部
倒不如写个外部程序直接判断数据库内容增加或者减少,不过很奇怪,既然表都是一样的为什么不直接只访问一个数据库呢?而且还是同一台电脑,而且要的是数据文件都一样,怕丢的话为什么不用自动备份?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
通过触发器可以实现:
create trigger test on 数据库名A.表c
insert,delete,update
as
begin
insert into 数据库名B.表d select ....from 数据库名A.表c
update....
delete ....
create trigger test on 数据库名A.表c
insert,delete,update
as
begin
insert into 数据库名B.表d select ....from 数据库名A.表c
update....
delete ....
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
同步复制,由特定的1个对其他多个的复制是简单的,任意1个对其他多个的同步复制恐怕很难。与其解决这个复制难题,不如修改系统的架构来的简单些
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
方法一:为每个表添加触发器。
方法二:在每个表添加数据的地方,同时写入其他数据库中的相应表。
当然最好是用第一个。
方法二:在每个表添加数据的地方,同时写入其他数据库中的相应表。
当然最好是用第一个。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询