数据库高手请进,该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务。
ALTER PROCEDURE GETPSS AS
BEGIN
BEGIN TRAN
SELECT * FROM OPENROWSET('SQLOLEDB','192.168.0.88';'SA';'','SELECT * FROM CCCCONFIG')
COMMIT
END
EXEC GETPSS
代码如上:
单独在查询分析器里执行
SELECT * FROM OPENROWSET('SQLOLEDB','192.168.0.88';'SA';'','SELECT * FROM CCCCONFIG')
是,没有错的
但是直接执行EXEC GETPSS 时
则报错如下:
服务器: 消息 7391,级别 16,状态 1,过程 GETPSS,行 4
该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务。
[OLE/DB provider returned message: 新事务不能登记到指定的事务处理器中。 ]
OLE DB 错误跟踪[OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d00a]。
网上的解决方案 如下链接
http://www.cnblogs.com/chnking/archive/2007/04/04/699891.html 所提到的解决方案 都实验过了,测试不通过
实在是没办法了,请大侠们看看有没有别的办法解决,是不是向这种跨服务器的操作 是不支持事务的?