建立链接服务器
exec sp_addlinkedserver 'ceshi', '', 'SQLOLEDB', '192.168.18.7' ---连接
exec sp_addlinkedsrvlogin 'ceshi', 'false',null, 'sa', 'sa' -----登录
在查询分析器中测试
select和insert 都可以对远程数据库进行操作。
在本地数据库建立触发器
CREATE TRIGGER [table_trigger] ON [table]
for INSERT
as
begin
SELECT * FROM ceshi.table.dbo.b_name
end
无论是用select还是insert都出现错误
该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务。
[OLE/DB provider returned message: 新事务不能登记到指定的事务处理器中。 ]网上查过类似错误,解决办法都试过,不行。
系统环境:windows xp+sqlserver2000个人版。
exec sp_addlinkedserver 'ceshi', '', 'SQLOLEDB', '192.168.18.7' ---连接
exec sp_addlinkedsrvlogin 'ceshi', 'false',null, 'sa', 'sa' -----登录
在查询分析器中测试
select和insert 都可以对远程数据库进行操作。
在本地数据库建立触发器
CREATE TRIGGER [table_trigger] ON [table]
for INSERT
as
begin
SELECT * FROM ceshi.table.dbo.b_name
end
无论是用select还是insert都出现错误
该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务。
[OLE/DB provider returned message: 新事务不能登记到指定的事务处理器中。 ]网上查过类似错误,解决办法都试过,不行。
系统环境:windows xp+sqlserver2000个人版。
服务器别名:ceshi
数据库名:table
表名:b_name
有问题!
CREATE TRIGGER [table_trigger] ON [table]
for INSERT
as
begin
SELECT * FROM OPENDATASOURCE(
'SQLOLEDB',
'Data Source=192.168.18.7 ;User ID=sa;Password=''sa'''
).ceshi.table.dbo.b_name
end
CREATE TRIGGER [table_trigger] ON [table]
for INSERT
as
begin
SELECT * FROM OPENDATASOURCE(
'SQLOLEDB',
'Data Source=192.168.18.7 ;User ID=sa;Password=''sa'''
).ceshi.dbo.tablename
end
CREATE TRIGGER [table_trigger] ON [table]
for INSERT
as
begin
SELECT * FROM OPENDATASOURCE(
'SQLOLEDB',
'Data Source=192.168.18.7 ;User ID=sa;Password=sa'
).ceshi.dbo.tablename
end
分布式事务的话我测过同一网段的是可以的,但不在同一网段就不行了,网上查查要匹配host文件啊什么的,具体没有实施过。
链接服务器的分布式事务是比较麻烦的,在操作的时候都是尽量避免的,你这样的话直接订阅发布不就可以了么?
我是想实现两个数据表同步,所以使用触发器比较方便一点。网上的一些方法都试过,msdtc,host,SP4等,都没效果。在同一内网里面测试也没通过。
再不行只有用程序解决了....
ascommitinsert into XX.xx.xx.xx