8 messaggi dal 18 aprile 2007
Salve. ho la necessità di effettuare un caricamento di una tabella con un dts, in modo differenziale... esiste la possibilità
1.024 messaggi dal 19 dicembre 2003
Contributi | Blog
Che cosa è secondo te un "caricamento in modo differenziale"?

Se ti riferisci alla possibilità di aggiungere nella tabella B solo i nuovi record che sono stati inseriti nella tabella A puoi procedere con una triplice istruzione 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
============================

che puoi schedulare attraverso un job o, se l'attività fa parte di un pacchetto DTS esistente puoi farlo anche in un pacchetto DTS aggiungendo un "Execute SQL task"...

Bye

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.