存在这样的环境:
服务器serA,服务器serB
在服务器serA中建立有链键到serB的键接服务器Hao
在serA中执行select * form Hao.pubs.dbo.titles此语句可以得到查询结果
在serA中执行insert into Hao.pubs.dbo.titles(XX,YY)values('aa','bb')语句也成功但当通过触发器
CREATE TRIGGER tr_insert_titles ON [dbo].[titles]
FOR INSERT
AS
set XACT_ABORT on
insert into Hao.pubs.dbo.titles(XX,YY)values('aa','bb')当在表titles中插入数据时却出现了以下错误:错误代码:
服务器: 消息 7391,级别 16,状态 1,行 15
该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务。
[OLE/DB provider returned message: 新事务不能登记到指定的事务处理器中。 ]
这是怎么回事呢?
在查询分析器中单独执行insert into Hao.pubs.dbo.titles(XX,YY)values('aa','bb')而不是放到触发器的时间可以执行通过,到了触发器中就出错了呢?
服务器serA,服务器serB
在服务器serA中建立有链键到serB的键接服务器Hao
在serA中执行select * form Hao.pubs.dbo.titles此语句可以得到查询结果
在serA中执行insert into Hao.pubs.dbo.titles(XX,YY)values('aa','bb')语句也成功但当通过触发器
CREATE TRIGGER tr_insert_titles ON [dbo].[titles]
FOR INSERT
AS
set XACT_ABORT on
insert into Hao.pubs.dbo.titles(XX,YY)values('aa','bb')当在表titles中插入数据时却出现了以下错误:错误代码:
服务器: 消息 7391,级别 16,状态 1,行 15
该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务。
[OLE/DB provider returned message: 新事务不能登记到指定的事务处理器中。 ]
这是怎么回事呢?
在查询分析器中单独执行insert into Hao.pubs.dbo.titles(XX,YY)values('aa','bb')而不是放到触发器的时间可以执行通过,到了触发器中就出错了呢?
CREATE TRIGGER tr_insert_titles ON [dbo].[titles]
FOR INSERT
AS
set XACT_ABORT on
exec ('SET QUOTED_IDENTIFIER OFF insert into Hao.pubs.dbo.titles(XX,YY)values("aa","bb)')
http://support.microsoft.com/default.aspx?scid=kb;zh-cn;329332
用的是xp或2003server把
msdtc的问题,微软有解决的方法
微软没有提到win2000的解决方法。
在“安全配置”对话框中,单击以选中“网络 DTC 访问”复选框。
http://community.csdn.net/Expert/topic/4824/4824144.xml?temp=.1700098