我想用触发器来同步数据的问题(从一个DB 到别外一个DB)!所以在表上分别有写三个触发器,分别是--insert
CREATE TRIGGER DCSIBA_Trigger_Insert ON DCSIBA
AFTER INSERT AS BEGIN
INSERT INTO TEST..DCSIBA SELECT * from inserted
END--DELETE
CREATE TRIGGER DCSIBA_Trigger_Delete ON DCSIBA
AFTER DELETE AS BEGIN
delete TEST.dbo.DCSIBA where exists (SELECT * from deleted )
END
--UPDATE
CREATE TRIGGER [dbo].[DCSIBA_Trigger_UPDATE] ON [DSB].[dbo].[DCSIBA]
AFTER UPDATE not for Replication
AS
BEGIN
delete TEST.dbo.DCSIBA where exists (SELECT * from deleted)
INSERT INTO TEST.dbo.DCSIBA SELECT * from inserted
--由于这里的字段是不确认的,有很多表,所以一个个的字段去去插入不太现实。
END 问题是:当表中的数据做更新时,触发器又触发delete 与insert 触又成死循环了,如何这个来处理死循环,这类的数据同步有没有更好的办法做到时时更新?请大侠指点一下,很少用触发器。
CREATE TRIGGER DCSIBA_Trigger_Insert ON DCSIBA
AFTER INSERT AS BEGIN
INSERT INTO TEST..DCSIBA SELECT * from inserted
END--DELETE
CREATE TRIGGER DCSIBA_Trigger_Delete ON DCSIBA
AFTER DELETE AS BEGIN
delete TEST.dbo.DCSIBA where exists (SELECT * from deleted )
END
--UPDATE
CREATE TRIGGER [dbo].[DCSIBA_Trigger_UPDATE] ON [DSB].[dbo].[DCSIBA]
AFTER UPDATE not for Replication
AS
BEGIN
delete TEST.dbo.DCSIBA where exists (SELECT * from deleted)
INSERT INTO TEST.dbo.DCSIBA SELECT * from inserted
--由于这里的字段是不确认的,有很多表,所以一个个的字段去去插入不太现实。
END 问题是:当表中的数据做更新时,触发器又触发delete 与insert 触又成死循环了,如何这个来处理死循环,这类的数据同步有没有更好的办法做到时时更新?请大侠指点一下,很少用触发器。
只是单向同步的话。就没问题噢