- 爱易网页
-
MSSQL教程
- 初学,简单的两库同步触发器, 望高手不吝赐教!
日期:2014-05-18 浏览次数:20519 次
初学,求一个简单的两库同步触发器, 望高手不吝赐教!!
有两个数据库
库A 库B
------------------------ ----------------------------------
表man 表depa 表man 表depa
---------- ------------ --------------- ------------
字段 a 字段 a 字段 a 字段 a
字段 b 字段 b 字段 b 字段 b
字段 c 字段 c 字段 c 字段 c
字段 d 字段 d
库B与库A相同只是两个表都多了几个字段.
问题:
对库A的表man 和表depa 进行(删除\插入\修改)数据时, 库B的表man 和表depa也相应的对数据进行(删除\插入\修改),并且字段d的值赋为1,从而保持两个数据库的数据一致.
希望各位高手帮忙,给小弟个学习的机会!
------解决方案--------------------
--
create database B
go
use B
go
create table man(a int, b int, c int, d int)
go
--
create database A
go
use A
go
create table man(a int, b int, c int)
create trigger tr_man_delete on man
for delete
as
delete tmpB
from deleted A, B.dbo.man tmpB
where A.a=tmpB.a and A.b=tmpB.b and A.c=tmpB.c
go
create trigger tr_man_insert on man
for insert
as
insert B.dbo.man
select *, 1 from inserted
go
create trigger tr_man_update on man
for update
as
update B.dbo.man tmpB set tmpB.a=inserted.a, tmpB.b=inserted.b, tmpB.c=inserted.c
from inserted, deleted
where tmpB.a=deleted.a and tmpB.b=deleted.b and tmpB.c=deleted.c
go