积极答复者
MS SQLServer 在 触发器 中 使用 联接服务器 无法 跨库 操作数据的问题

问题
-
我有两台机器,A,B,都装了MS SQL Server 2005
现在在B里建了个触发器,往A数据库里插数据,报错;在B的SQL查询分析器里select 查询、insert 插入 A的数据都没问题,只是写入到触发器后,调用触发器时出错,具体情况如下:
Microsoft SQL Server Management Studio
---------------------------
未更新任何行。
未提交行 10 中的数据。
错误源: .Net SqlClient Data Provider。
错误信息: 无法执行该操作,因为链接服务器 "(null)" 的 OLE DB 访问接口 "SQLNCLI" 无法启动分布式事务。
链接服务器"(null)"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "没有活动事务。"。
请更正错误并重试,或按 Esc 取消更改。
---------------------------
确定 帮助
跨库访问应该是没问题的
因为 使用如下语句可以完成B中数据插入A中
insert into openrowset('SQLOLEDB' , '192.168.0.86' ; 'sa' ; 'sa' , tr55_bk.dbo.user)
select * from tr55.dbo.trafaxuser但是写入触发器后就有问题。
触发器如下
ALTER TRIGGER [syncuser]
ON [dbo].[User]
AFTER INSERT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
set xact_abort on
begin distributed tran
insert into openrowset('SQLOLEDB' , '192.168.0.86' ; 'sa' ; 'sa' , tr55_bk.dbo.user)
select * from tr55.dbo.trafaxuser
commit tran
END;盼高手解答
- 已编辑 iceCity 2012年5月17日 7:21 完善环境信息