CREATE TRIGGER send_to_oracle ON dbo.hot_metal_analysis
FOR UPDATE
AS
BEGIN
INSERT INTO OPENQUERY(BFSERVER,'SELECT * FROM DBBF.D3DATA1')
SELECT SAMPLETAKENTIME,NULL,SUBSTRING(SAMPLECODE,5,5),SUBSTRING(SAMPLECODE,13,3),ANA_C,ANA_Si,ANA_Mn,ANA_P,ANA_S,ANA_Ti
FROM INSERTED
END主要错误有1、“其他用户已经修改了该表的内容。您正在修改的数据库行在数据库中不存在”
2、“ MSASQL 无法启动分布式事务”
3、SET ANSI_NULLS ON SET ANSI_WARNINGS ON
问题3可以把触发器中几句话写在存储过程中解决,而问题1、2一直存在链接服务器设置妥当,链接服务器数据源只有采用
MS OLE DB Provider for ODBC Driver,才能在查询分析器中可对ORALCE表进行操作
ORALCE数据库使用2000SRV,MSDTC已经启动
SQL数据库(本地)使用2003SRV,MSDTC也启动,并按相关设置好,两端可以PING通HOSTNAME相关资料昨晚也找了些,不过问题还是没解决。
如果这种在SQL表中触发器同步更新ORACLE表的方式行不通,有别的方法更新么?
谢谢了
FOR UPDATE
AS
BEGIN
INSERT INTO OPENQUERY(BFSERVER,'SELECT * FROM DBBF.D3DATA1')
SELECT SAMPLETAKENTIME,NULL,SUBSTRING(SAMPLECODE,5,5),SUBSTRING(SAMPLECODE,13,3),ANA_C,ANA_Si,ANA_Mn,ANA_P,ANA_S,ANA_Ti
FROM INSERTED
END主要错误有1、“其他用户已经修改了该表的内容。您正在修改的数据库行在数据库中不存在”
2、“ MSASQL 无法启动分布式事务”
3、SET ANSI_NULLS ON SET ANSI_WARNINGS ON
问题3可以把触发器中几句话写在存储过程中解决,而问题1、2一直存在链接服务器设置妥当,链接服务器数据源只有采用
MS OLE DB Provider for ODBC Driver,才能在查询分析器中可对ORALCE表进行操作
ORALCE数据库使用2000SRV,MSDTC已经启动
SQL数据库(本地)使用2003SRV,MSDTC也启动,并按相关设置好,两端可以PING通HOSTNAME相关资料昨晚也找了些,不过问题还是没解决。
如果这种在SQL表中触发器同步更新ORACLE表的方式行不通,有别的方法更新么?
谢谢了
只有用MS OLE DB Provider for ODBC Driver才勉强链接成功
不过还可以在查询分析器里面“插入”执行语句那我只有在客户端的UPDATECOMMAMD.TEXT里面加上查询分析器里面的“插入ORACLE的语句”了。
本版的确类似的问题很多,不过最终都没有完整的答复,也不知道他们采用何种补救方案
采用分布式事务处理,版本限制太多,不过肯定有成功的先例的望赐教