nelchael81 ha scritto:
Se l'id non esiste lo devo creare.
Se esiste devo controllare che il campo titolo sia uguale.
In caso negativo devo aggiornare.
In SQL Server non esiste ancora un operatore del genere; sarà presente in SQL Server 2008 (MERGE).
Per ora devi procedere ad una duplice (o triplice) istruzione; qualcosa di simile a
============================
--eliminazione dei record non più presenti
DELETE dbo.Destinazione
WHERE PK NOT IN (SELECT PK FROM dbo.Origine)
--aggiornamento dei record modificati
UPDATE
SET campo1 = O.campo1,
campo2 = O.campo2,
...,
campon = O.campon
FROM dbo.Origine O INNER JOIN dbo.Destinazione D
ON O.PK = D.PK
WHERE campo1 <> O.campo1
OR campo2 = O.campo2
OR ...
OR campon = O.campon
--inserimento dei nuovi
INSERT dbo.Destinazione
SELECT O.*
FROM dbo.Origine O LEFT JOIN dbo.Destinazione D
ON O.PK = D.PK
WHERE D.PK IS NULL
============================
Bye