Esto quedaría de perlas en un Sp
Esto actualizará los existentes
Código SQL
[-]
Update Destino
Set Destino.Campo = Origen.Valor
From Destino
Inner Join (Select ClaveArticu, ValorCampo
From Origen
Where Fecha >= Inicio And
Fecha <= Fin
) As Origen
On Destino.ClaveArticu = Origen.ClaveArticu
Esto Insertará los nuevos (Mi favorita por cuestiones de rendimiento)
Código SQL
[-]
Insert
Into Destino
(Campos)
Select Campos
From (Select ClaveArticu, Campos
From Origen
Where Fecha >= Inicio And
Fecha <= Fin
) As Origen
Left Join Destino
On Origen.ClaveArticu = Destino.ClaveArticu
Where Not Destino.AlgunCampo is null
Esta otra aplica, pero es más costosa en cuestión de rendimiento
Código SQL
[-]
Insert
Into Destino
(Campos)
Select Campos
From Origen
Where Fecha >= Inicio And
Fecha <= Fin And
CveArticulo Not In (Select CveArticulo From Destino)
Suerte