SQL7。0提示:Distributed transaction aborted by MSDTC?

tys101582 2006-07-19 04:00:22
A同步到B,没有错误,结果是:B中有数据.但是在B中加trigger调用procedure同步到外网的C时,,就出现这个问题Distributed transaction aborted by MSDTC?
结果是:C中有数据了,但B中没有?
A中表的触发器:(在这之前我先启动了MSDTC)
-创建同步的触发器
CREATE trigger t_testtest on testtest
for insert,update,delete
as
set XACT_ABORT on
--启动远程服务器的MSDTC服务
exec master..xp_cmdshell 'isql /S"jnst_gl" /U"sa" /P"" /q"exec master..xp_cmdshell ''net start msdtc'',no_output"',no_output

--启动本机的MSDTC服务
exec master..xp_cmdshell 'net start msdtc',no_output
--进行分布事务处理,如果表用标识列做主键,用下面的方法
BEGIN DISTRIBUTED TRANSACTION
delete from openrowset('sqloledb','jnst_gl';'sa';'',tys.dbo.testtest)
where tel in(select tel from deleted)
insert into openrowset('sqloledb','jnst_gl';'sa';'',tys.dbo.testtest)
select * from inserted
commit tran

B中表的触发器如下:
CREATE trigger t_testtest on dbo.testtest for insert as
declare @t char(100)
select @t=tel from inserted
exec dt_url @t
select * from inserted
commit tran


DT_URL如下:
CREATE procedure dbo.dt_url
@values char(100)
as
DECLARE @url CHAR(255)
SET @url='http://192.168.1.88:8080/chat_new/recv_ivr.jsp?tel=' + RTRIM(@values)
DECLARE @xml INT
DECLARE @Err INT
DECLARE @returnValue VARCHAR(255)
set nocount on
if isnull(@values,'')=''
begin
raiserror('Must specify a property name.',-1,-1)
return (1)
end
EXEC @err = sp_OACreate "Microsoft.XMLDOM", @xml OUT
EXEC @err = sp_OAMethod @xml,'Load',@returnValue OUT,@url
...全文
102 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzhs 2006-07-19
  • 打赏
  • 举报
回复
帮顶!
关注!~~~~

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧