Esto sucede cuando una fila de destino coincide con más de una fila de origen.
Una instrucción MERGE no puede ACTUALIZAR/ELIMINAR la misma fila de la tabla de destino varias veces.
Creo que el error se explica por sí mismo.
Tiene filas duplicadas en la tabla de origen. Entonces, para una fila con Rownumber = X
en Rows
tabla hay más de una fila con Rowno = X
en Temp_info
mesa.
El servidor SQL quisiera saber qué fila de esas filas duplicadas en la tabla de origen usar para la actualización en una fila de la tabla de destino.
[Editar]
En respuesta a su respuesta:una de las opciones es duplicar, antes de ejecutar la combinación:
with cte
as
(
select row_number() over(partition by RowNo order by DOB desc) RowNumber
from Temp_info
)
delete cte
where RowNumber > 1
Usé DOB
como el campo que define el orden para saber cuál es el último. Reemplace este campo con el que desea que se use para el pedido.