---zhouxin 2010-02-03
其中wxd 和yy 分别为测试数据库它们间有共同的表Table_A 结构为:id nchar(8) name nchar(8)
USE wxd
GO
CREATE TRIGGER trigger_selsyn
ON wxd
FOR INSERT,UPDATE,DELETE--触发器类型
AS IF NOT EXISTS (SELECT * FROM deleted)--INSERT触发器
BEGIN
INSERT yy..Table_A(id,[name]) SELECT id,[name] FROM inserted
END
ELSE IF NOT EXISTS (SELECT * FROM inserted)--DELETE触发器
BEGIN
DELETE yy..Table_A WHERE id IN (SELECT id FROM deleted)
END
ELSE--UPTATE触发器
BEGIN
UPDATE yy..Table_A SET [name]=inserted.[name] FROM inserted WHERE yy..Table_A.id=inserted.id
END
GO
SELECT * FROM wxd..Table_A
SELECT * FROM yy..Table_A
GO
INSERT INTO wxd..Table_A VALUES('0001','TestName01')--测试INSERT触发器
SELECT * FROM wxd..Table_A
SELECT * FROM yy..Table_A
GO
UPDATE wxd..Table_A set wxd..Table_A.[name]='UPDATENAME' WHERE wxd..Table_A.id='0001'--测试UPDATE触发器
SELECT * FROM wxd..Table_A
SELECT * FROM yy..Table_A
GO
DELETE wxd..Table_A where wxd..Table_A.id='0001'--测试DELETE触发器
SELECT * FROM wxd..Table_A
SELECT * FROM yy..Table_A
GO
本文介绍了一个使用SQL触发器在两个数据库间同步数据的方法。通过创建不同类型的触发器(INSERT、UPDATE、DELETE),实现了源数据库Table_A表的数据变动能够实时反映到目标数据库对应的表中。该方案适用于需要在多个数据库间保持数据一致性的场景。
915

被折叠的 条评论
为什么被折叠?



