Hola a todos no sé cómo es posible que este Merge me cause deadlock, el hecho es que sí lo causa.
Si alguien ve donde está el problema y puediera decirme que hacer.
Salu2
;
Código SQL:
Ver originalMERGE dbo.Precio_LMD AS TARGET
USING
(
SELECT circ.Circular_IdOLTP,
exis.Prod_IdODS,
e.Est_PadreIdODS,
MAX(exis.FechaReal_IdOds),
SUM(exis.Existencias_Cantidad),
SUM(exis.Existencias_Costo)
FROM dbo.RepTemp_LME AS exis
INNER JOIN Nomencladores.dbo.Establecimiento AS e
ON exis.Est_IdOds = e.Est_IdODS
INNER JOIN dbo.PrecioLMC AS circ
ON circ.Prod_IdODS = exis.Prod_IdODS
AND ISNULL(circ.FechaFin_IdODS,@SucFechaActual_IdOds) = exis.Fecha_IdOds
WHERE exis.Suc_EstIdOds = @SucursalEst_IdOds
AND e.Est_PadreIdODS IS NOT NULL
GROUP BY circ.Circular_IdOLTP,
exis.Prod_IdODS,
e.Est_PadreIdODS
)AS SOURCE
(
Circular_IdOLTP,
Prod_IdODS,
Est_IdODS,
FechaReal_IdOds,
Existencias_Cantidad,
Existencias_Costo
)
ON
(
target.Prod_IdODS = SOURCE.Prod_IdODS
AND target.Est_IdODS = SOURCE.Est_IdODS
AND target.Circular_IdOLTP = SOURCE.Circular_IdOLTP
)
WHEN NOT MATCHED BY TARGET THEN INSERT
([Prod_IdODS]
,[Est_IdODS]
,[Circular_IdOLTP]
,[FechaActualizacion_IdODS]
,[ExistFinal_Cantidad]
,[ExistFinal_Costo]
)
VALUES
(
SOURCE.Prod_IdODS,
SOURCE.Est_IdODS,
SOURCE.Circular_IdOLTP,
SOURCE.FechaReal_IdOds,
SOURCE.Existencias_Cantidad,
SOURCE.Existencias_Costo
)
WHEN MATCHED THEN UPDATE
SET target.ExistFinal_Cantidad = SOURCE.Existencias_Cantidad,
target.ExistFinal_Costo = SOURCE.Existencias_Costo;