Hola alemaxxx
Yo lo haria de la sig. manera
Insertar todos los datos del excel a una tabla en la bd de datos de origen, ejemplo, tablaItems_Temporal, una ves teniendo cargados ahi todos los datos del excel, hago una comparación con la tabla real, mediante un left join.
Algo como esto.
Código:
INSERT INTO tablaItems
SELECT t1.* FROM tablaItems_Temporal AS t1
LEFT JOIN tablaItems AS t2 ON (t1.Id = t2.Id)
WHERE t2.Id IS NULL
UPDATE tablaItems
SET Precio = t1.Precio
FROM
(
SELECT * FROM tablaItems_Temporal AS t1
LEFT JOIN tablaItems AS t2 ON (t1.Id_Temp = t2.Id)
WHERE t2.Id IS NOT NULL
) AS t1 WHERE t1.Id_Temp = tablaItems.Id
Osea, primero comparas, que el ID exista, si no existe, inserta. Si el Id existe, compara que el precio sea igual, si no actualiza, eso hace el codigo de arriba. Espero te sirva.
Saludos