各位大哥,小弟遇到个问题:
写的程序,更新A数据库里面的A1表,然后B数据库里面的B1表自动更新!A1表和B1表的结构完全一样的A数据库和B数据库在同一内网,A是在公网上的一台主机,B是内网用户使用的OA系统主机!怎么A1表上写触发器呢?各位帮帮忙!!谢谢了先!
写的程序,更新A数据库里面的A1表,然后B数据库里面的B1表自动更新!A1表和B1表的结构完全一样的A数据库和B数据库在同一内网,A是在公网上的一台主机,B是内网用户使用的OA系统主机!怎么A1表上写触发器呢?各位帮帮忙!!谢谢了先!
exec sp_addlinkedserver 'aieehao2', '', 'SQLOLEDB', 'x.x.x.x'
exec sp_addlinkedsrvlogin 'aieehao2', 'false',null, 'x', 'x'
go 执行成功
select * from aieehao2.xxx.dbo.table1也能正确执行了但是触发:
(在本地数据库AA里面的table上写的触发)
CREATE trigger tt_test on table
for insert
as
set XACT_ABORT on
insert into aieehao2.Aiee.dbo.Table1 (fid) select fid from inserted
set XACT_ABORT off检查语法什么的都通过,但是在table添加记录的时候出错:该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务。怎么处理啊?
---------------
简单的链接和触发为什么不行呢?还要分步式???
说真的,我对MSSQL并不是很了解,是为了实现这个效果,才来研究这东西! 我不知道还有没有其它解决方案,我是通过程序,来更新网上一台主机上的SQL数据库,SQL数据库服务器所在的内网还有一台我们的主机,但是这是台服务器是做OA系统的考虑到安全因素,是不放在公网上的,,无法通过程序直接更新不在公网上的服务器,只能先更新公网上那台,再通过触发,同步更新不在公网上那台做OA系统的SQL服务器
我是不是走了弯路?还有啥更简单的方法?