| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 908 人关注过本帖
标题:一个关于公布式事务的问题
取消只看楼主 加入收藏
hzhfss124
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-8-17
收藏
 问题点数:0 回复次数:2 
一个关于公布式事务的问题
症状:
执行代码insert into testtable(id) select '11'
然后触发器调用存储过程.往远程服务器加数据就出错.只要是触发器调用就会出错

错误信息:
服务器: 消息 7391,级别 16,状态 1,过程 testpro,行 7
该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务。
[OLE/DB provider returned message: 新事务不能登记到指定的事务处理器中。 ]

数据库为:testtable
相关代码是:
CREATE TABLE [dbo].[testtable] (
    [id] [int] NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[testtable2] (
    [id] [char] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO

CREATE PROCEDURE testpro
@id Nvarchar(50)
AS
if not exists(Select * From msdb.dbo.Sysservers Where Isremote=1 and DataSource='192.168.0.106')
    exec sp_addlinkedserver '192.168.0.106','sql server'
exec sp_addlinkedsrvlogin '192.168.0.106',false,null,'sa'
insert into [192.168.0.106].testtable.dbo.testtable2 select * From testtable where id=@id
GO

CREATE TRIGGER testtri ON [dbo].[testtable]
FOR INSERT
AS
declare @i nvarchar(10)
select @i=id From inserted
exec testpro @i
GO


大家帮忙呀...弄好几天了
搜索更多相关主题的帖子: 式事务 服务器 公布 触发器 testpro 
2008-08-17 08:16
hzhfss124
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-8-17
收藏
得分:0 
插入的是int的值.所以和这个是没有关系的...
2008-08-18 21:58
hzhfss124
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-8-17
收藏
得分:0 
再顶.在线等
2008-08-19 19:24
快速回复:一个关于公布式事务的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019499 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved