【发布时间】:2013-08-22 01:07:08
【问题描述】:
我在 sql server 中有一个表,在 mysql server 中有一个具有相同名称和字段的表。我使用以下触发器通过链接服务器连接它们:
CREATE TRIGGER items_insert ON [prueba]
FOR INSERT
AS
BEGIN
declare @tmp table (a int, b varchar(10))
insert @tmp (a, b) select ID, Name from inserted
COMMIT
SET XACT_ABORT ON
INSERT INTO OPENQUERY(WEBDB, 'SELECT * FROM prueba')
SELECT a, b FROM @tmp
begin tran
end
我的问题是,当我使 mysql serverm 脱机并在 sql server 中插入一条记录时,它显然没有插入 mysql,但是当我放置 mysql server 时它也没有。我想要一个队列,这样当服务器之间的连接断开时,在连接恢复时,这段时间内的任何新记录都会插入到 mysql 中。我怎么能做到这一点?,我是 sql server 和触发器的新手
注意:触发器具有根据this 教程的@tmp 声明,因为我收到了一个关于事务错误的奇怪错误
【问题讨论】:
-
我建议有一个 SQL Server 作业,它可以及时运行并获取记录并推送到 mysql 数据库。您可能需要使用 SQL Server 表中的某个布尔列来跟踪推送了哪些记录。
标签: mysql sql sql-server linked-server