问题描述
我有一个使用Firebird(版本2.5)数据库的应用程序。我想将其中一个表条目触发到另一个sql Server 2008 R2数据库表中。当我提交时,出现以下错误
代码:
CREATE TRIGGER "trig_INV"
FOR "INVA"
ACTIVE
AFTER UPDATE
POSITION 100
AS
BEGIN
IF ((updating) AND ((old.cold <> new.cold))) THEN
BEGIN
INSERT INTO 192.168.17.206/1043: [RBT].[dbo].[N_Inv]([COLA],[COLB],[COLC],[COLD],[COLE])
SELECT FirsT 1
"COLA","COLB","COLC","COLD","COLE"
FROM "INVA"
ORDER BY COLA DESC
END
我不确定firebird触发器是否允许将记录推送到sql Server数据库。如果有人尝试过并提供参考,那将是很棒的。预先感谢。
解决方法
您收到该错误,因为您使用的语法在Firebird中不存在。除了Firebird,Firebird不支持连接到其他数据库系统(理论上,您可以编写一个允许连接到其他数据库系统的提供程序,但据我所知,实际上不存在)。
如果要同步到其他数据库系统,则需要编写UDF或UDR(替代Firebird 3中引入的UDF),或者编写提供同步的自定义应用程序,或者使用第三方软件来执行此操作(例如SymmetricDS)。