SQL7。0提示:Distributed transaction aborted by MSDTC?
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