SQL Server Performance

Transaccion en coordinador de transacciones

Discussion in 'Preguntas sobre SQL Server en Español.' started by fjac_pe, Mar 28, 2005.

  1. fjac_pe New Member

    Tengo el siguiente problema

    [OLE/DB provider returned message: No se puede dar de alta la nueva transacción en el coordinador de transacciones especificado. ]

    Primero tengo 2 servidores, soft2 (win 2000 y sql standard), deaf (win nt4 y sql standard),
    y corro un proceso en soft2, pero antes abro una transaccion y cuando actualizo los
    valores x tipo de cambio, ejecuto lo siguiente
    sp_AlmacenActualizaPrecioCambio '01/01/2004','31/01/2004','AvioPartes','AvioPartesItems'

    el estore es el siguiente


    SET QUOTED_IDENTIFIER OFF
    GO
    SET ANSI_NULLS ON
    GO

    Create procedure sp_AlmacenActualizaPrecioCambio
    @Fecha1datetime,
    @Fecha2datetime,
    @TablaParte varchar(100),
    @TablaItem varchar(100)

    as
    declare @Sql varchar(8000)


    --DBO.F_CAMBIOFECHA(CASE WHEN (Movi_FechFact IS NULL) THEN Movi_FechEmis else Movi_FechFact END) ,5) END,

    --ROUND(Movi_precsole/
    select @sql = 'UPDATE detalle
    SET Movi_precdola=
    case when mone_codi=1 THEN Movi_precdola
    when Movi_precsole=0 then 0 else
    ROUND(Movi_precsole/
    (select isnull(TVENTA,0) from deafrani_server.dbsqldeaf.dbo.cfg_tccontab where fecha=
    case when (Movi_FechFact IS NULL) THEN Movi_FechEmis else Movi_FechFact END),5)
    end,
    Movi_precsole=
    case when mone_codi=0 THEN Movi_precsole ELSE
    ROUND(
    (select isnull(TVENTA,0) from deafrani_server.dbsqldeaf.dbo.cfg_tccontab where fecha=
    case when (Movi_FechFact IS NULL) THEN Movi_FechEmis else Movi_FechFact END)
    *Movi_precdola ,5) END
    FROM ' + @TablaItem + ' detalle inner join ' + @TablaParte + ' cabecera
    on detalle.alma_codi=cabecera.alma_codi and detalle.movi_codi=cabecera.movi_codi
    where cabecera.Oper_Tipo=0 and (comptipo_codi<>2 or comptipo_codi is null) and Movi_FechEmis between ''' + convert(varchar(50), @Fecha1, 103) + ''' and ''' + convert(varchar(50), @Fecha2, 103) + ''''
    --cabecera.Oper_Tipo=0 and (comptipo_codi<>2 or comptipo_codi is null)
    --print @Sql
    exec(@sql)
    exec('UPDATE detalle
    SET Movi_ImpoDola=
    Movi_PrecDola*Movi_Cant,
    Movi_ImpoSole=
    Movi_PrecSole*Movi_Cant
    FROM ' + @TablaItem + ' detalle inner join ' + @TablaParte + ' cabecera
    on detalle.alma_codi=cabecera.alma_codi and detalle.movi_codi=cabecera.movi_codi
    where cabecera.Oper_Tipo=0 and (comptipo_codi<>2 or comptipo_codi is null) and Movi_FechEmis between ''' + @Fecha1 + ''' and ''' + @Fecha2 + '''')


    GO
    SET QUOTED_IDENTIFIER OFF
    GO
    SET ANSI_NULLS ON
    GO

    Que puedo hacer, mi salida rapida ha sido generar una tabla en mi servidor y funciona, pero quiero volver a estar como antes, ya que contabilidad registra el tipo de cambio en su sistema y yo lo obtengo sin tener que estar ingresandolo

Share This Page