Sto eseguendo un'unione in SQL Server. Nel mio aggiornamento, voglio aggiornare la riga solo se i valori sono cambiati. Esiste una riga di versione che incrementa su ogni aggiornamento. Di seguito è riportato un esempio:Unisci: aggiornamento solo se i valori sono stati modificati
MERGE Employee as tgt USING
(SELECT Employee_History.Emp_ID
, Employee_History.First_Name
, Employee_History.Last_Name
FROM Employee_History)
as src (Emp_ID,First_Name,Last_Name)
ON tgt.Emp_ID = src.Emp_ID
WHEN MATCHED THEN
UPDATE SET
Emp_ID = src.Emp_ID,
,[VERSION] = tgt.VERSION + 1
,First_Name = src.First_Name
,Last_Name = src.Last_Name
WHEN NOT MATCHED BY target THEN
INSERT (Emp_ID,0,First_Name,Last_Name)
VALUES
(src.Emp_ID,[VERSION],src.First_Name,src.Last_Name);
Ora, se volevo solo aggiornare la riga, e la versione in tal modo di incremento, solo se il nome è cambiato.
Se questo dovesse essere un 'o'? Se solo il primo nome è cambiato, voglio comunque aggiornare – TrialAndError
@ TrialAndError: Sì, hai ragione. Fixing ... – a1ex07
Penso che funzionerà perfettamente. Non mi rendevo conto che avrei potuto avere un 'AND' nella parte MATCHED. Grazie. – TrialAndError