error DTS urgente

09/06/2005 - 15:51 por daniel | Informe spam
hola gente, miren estoy corriendo un programa que utiliza DTS para hacer
querys en otro server de SQL, pero me esta dando error. el servidor tiene
win2k sp4 con sql2k sp3. y la pc tiene win2k pro con sp4 y MSDE del office
xp que seria el sql2k.

el query que ejecuto es este:
DECLARE @@NRO_ERROR Int
DECLARE @@EXPRESION_UPDATE AS VarChar(7000)

SET XACT_ABORT ON
SET NOCOUNT ON

BEGIN TRAN


||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
||||||||
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
||||||||


SET @@EXPRESION_UPDATE = 'UPDATE [W2K-TERM2].[EMP_LOCAL].dbo.UnidadMedida
' +
' SET DescUnidad = TOri.DescUnidad,' +
' FactorFt2 = TOri.FactorFt2,' +
' Fec_Alta = TOri.Fec_Alta,' +
' Usu_Alta = TOri.Usu_Alta,' +
' FecUltAct = TOri.FecUltAct,' +
' UsuUltAct = TOri.UsuUltAct,' +
' FecBajLog = TOri.FecBajLog,' +
' UsuBajLog = TOri.UsuBajLog' +
' FROM ([NTS-TEST04].[EMP30].dbo.UnidadMedida as TOri' +
' INNER JOIN (SELECT CASE WHEN Max(FecUltProceso) IS NULL' +
' THEN CAST(''1950-01-01 00:00:00'' AS
DateTime)' +
' ELSE' +
' Max (FecUltProceso)' +
' END As UltProc' +
' FROM
[W2K-TERM2].[EMP_LOCAL].dbo.Sincronizacion' +
' WHERE Id_Sentido = 1) AS B' +
' ON TOri.Fec_Alta > B.UltProc' +
' OR TOri.FecUltAct > B.UltProc' +
' OR TOri.FecBajLog > B.UltProc)' +
' INNER JOIN [W2K-TERM2].[EMP_LOCAL].dbo.UnidadMedida
AS TDes' +
' ON TDes.IdUnidad = TOri.IdUnidad '



EXEC (@@EXPRESION_UPDATE)

SET @@NRO_ERROR = @@ERROR
IF @@NRO_ERROR <> 0 BEGIN
ROLLBACK TRAN
END

COMMIT TRAN

SET NOCOUNT OFF
SET XACT_ABORT OFF


y me da este error:

Server: Msg 7391, Level 16, State 1, Line 1
No se puede realizar la operación. El proveedor OLE DB 'SQLOLEDB' no pudo
iniciar una transacción distribuida.
[OLE/DB provider returned message: New transaction cannot enlist in the
specified transaction coordinator. ]
Traza de error de OLE DB [OLE/DB Provider 'SQLOLEDB'
ITransactionJoin::JoinTransaction returned 0x8004d00a].

en los do servidores tengo configurados los linked server y funciona, o sea
si entro en la opcion que dice Tabla veo las tablas del otro server.

alguna idea?
 

Leer las respuestas

#1 Alejandro Mesa
09/06/2005 - 16:01 | Informe spam
Esta iniciado el servicio MSDTC en ambos servers?


AMB

"daniel" wrote:

hola gente, miren estoy corriendo un programa que utiliza DTS para hacer
querys en otro server de SQL, pero me esta dando error. el servidor tiene
win2k sp4 con sql2k sp3. y la pc tiene win2k pro con sp4 y MSDE del office
xp que seria el sql2k.

el query que ejecuto es este:
DECLARE @@NRO_ERROR Int
DECLARE @@EXPRESION_UPDATE AS VarChar(7000)

SET XACT_ABORT ON
SET NOCOUNT ON

BEGIN TRAN


||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
||||||||
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
||||||||


SET @@EXPRESION_UPDATE = 'UPDATE [W2K-TERM2].[EMP_LOCAL].dbo.UnidadMedida
' +
' SET DescUnidad = TOri.DescUnidad,' +
' FactorFt2 = TOri.FactorFt2,' +
' Fec_Alta = TOri.Fec_Alta,' +
' Usu_Alta = TOri.Usu_Alta,' +
' FecUltAct = TOri.FecUltAct,' +
' UsuUltAct = TOri.UsuUltAct,' +
' FecBajLog = TOri.FecBajLog,' +
' UsuBajLog = TOri.UsuBajLog' +
' FROM ([NTS-TEST04].[EMP30].dbo.UnidadMedida as TOri' +
' INNER JOIN (SELECT CASE WHEN Max(FecUltProceso) IS NULL' +
' THEN CAST(''1950-01-01 00:00:00'' AS
DateTime)' +
' ELSE' +
' Max (FecUltProceso)' +
' END As UltProc' +
' FROM
[W2K-TERM2].[EMP_LOCAL].dbo.Sincronizacion' +
' WHERE Id_Sentido = 1) AS B' +
' ON TOri.Fec_Alta > B.UltProc' +
' OR TOri.FecUltAct > B.UltProc' +
' OR TOri.FecBajLog > B.UltProc)' +
' INNER JOIN [W2K-TERM2].[EMP_LOCAL].dbo.UnidadMedida
AS TDes' +
' ON TDes.IdUnidad = TOri.IdUnidad '



EXEC (@@EXPRESION_UPDATE)

SET @@NRO_ERROR = @@ERROR
IF @@NRO_ERROR <> 0 BEGIN
ROLLBACK TRAN
END

COMMIT TRAN

SET NOCOUNT OFF
SET XACT_ABORT OFF


y me da este error:

Server: Msg 7391, Level 16, State 1, Line 1
No se puede realizar la operación. El proveedor OLE DB 'SQLOLEDB' no pudo
iniciar una transacción distribuida.
[OLE/DB provider returned message: New transaction cannot enlist in the
specified transaction coordinator. ]
Traza de error de OLE DB [OLE/DB Provider 'SQLOLEDB'
ITransactionJoin::JoinTransaction returned 0x8004d00a].

en los do servidores tengo configurados los linked server y funciona, o sea
si entro en la opcion que dice Tabla veo las tablas del otro server.

alguna idea?



Preguntas similares