我正在尝试寻求一些帮助,使数据从DB2实时同步到SQL Server,反之亦然。为什么我需要这个,因为我们的约束,我们被迫走这条路线,其中一些应用程序在SQL Server中,一些应用程序在DB2中。现在他们有了共同的表格。因此,当SQL Server端的应用程序更新/插入/删除时,我们应该在DB2端获取它。类似地,当DB2端的应用程序更新/插入/删除时,我们应该在SQL Server中获取它。
我找到了一些方法,但我不确定我是否做得对。
通过链接服务器使用触发器。 (但是我得到了这个无法执行请求的操作,因为链接服务器的OLE DB提供程序“DB2OLEDB”不支持所需的事务接口。)
使用SSIS
复制
我的触发器: - 这就是我实现TriggerUSE [MyDatabase]的方法 GO
SET ANSI_NULLS ON 走 SET QUOTED_IDENTIFIER ON 走 SET XACT_ABORT ON 去
ALTER TRIGGER [dbo]。[UpdateTrigger] ON [dbo]。[MySQLTable] 更新 如 开始分发交易
DECLARE @TSQL varchar(8000),@ VAR char(2),@ Cat varchar(2) SELECT @VAR ='TT' SELECT @TSQL = 'UPDATE oq SET oq.STATUS = p.STATUS FROM OPENQUERY(MyLinkedServer,''select * from DB2Database.dbo.MyDb2Table WHERE ID ='''''+ @VAR +''''''和Num = 1和Seq = 1'')oq INNER JOIN dbo.MySQLTable p ON oq.ID整理SQL_Latin1_General_CP1_CI_AS = p.ID和oq.NUM = p.NUM和oq.SEQ = p.SEQ' < / p>
EXEC(@TSQL)
COMMIT TRANSACTION