MERGE Statement
Useful for product inventory
Sergio Govoni
[email protected]
Speaker
Sergio Govoni
• Dal 1999 mi occupo di progettazione, analisi e
sviluppo di un ERP multi-aziendale client/server
in ambiente Win32
– Team leader
– Product manager
• MCP, MCTS SQL Server
– Lavoro con SQL Server dalla versione 7.0
• Speaker, Editor, Publisher @ UGISS
– www.ugiss.org
– Blog: http://community.ugiss.org/blogs/sgovoni
Agenda
• MERGE Statement
– Fondamenti
– Clausole
– Utilizzo
• Scenario: Inventario di magazzino
MERGE Fondamenti
• MERGE permette di distinguere:
– Una tabella sorgente (source)
– Una tabella destinazione (target)
• Modificando il contenuto della tabella
destinazione con i dati della tabella sorgente
• Con una sola operazione DML *multipla* 
Source
• Source non può
essere remota
Target o Destination
• Target table or
view
• SQL Std con
estensioni T-SQL
MERGE Clausole
• WHEN MATCHED
– La riga esiste sia in source che in target
– L’equivalente di source INNER JOIN target
– Azioni supportate: UPDATE e DELETE
• WHEN NOT MATCHED [BY TARGET]
– La riga esiste in source, ma non in target
– L’equivalente di source LEFT OUTER JOIN target
– Azione supportata: INSERT
• WHEN NOT MATCHED BY SOURCE
– La riga esiste in target, ma non in source
– L’equivalente di source RIGHT OUTER JOIN target
– Azioni supportate: UPDATE e DELETE
MERGE Utilizzo
• Scenario: Inventario di magazzino
– Si richiede l’aggiornamento delle giacenze logiche
memorizzate nella tabella dbo.ProductInventory
(target) con le giacenze fisiche rilevate durante
l’inventario, salvate in dbo.FrequentInventory (source)
– Aggiornamento quantità e inserimento nuovi prodotti
– Eliminazione prodotti non giacenti (giacenza = 0)
– Aggiornamento della colonna status per i prodotti non
rilevati (righe in target che non hanno corrispondenza
in source)
Product inventory
MERGE in action
MERGE Statement
Risorse Generiche
•
MERGE Statement
–
•
Informazioni sul prodotto SQL Server
–
–
•
http://www.ugiss.org
http://community.ugiss.org
Newsgroups pubblici via WEB
–
–
•
http://msdn.microsoft.com/sql
Comunità SQL Server
–
–
•
http://www.microsoft.com/italy/sql
http://www.microsoft.com/sql
Supporto sviluppo e professionisti IT
–
•
http://www.ugiss.org/Content/Article/MERGE-Statements-in-Action.aspx
http://www.microsoft.com/italy/communities/newsgroups/default.mspx
http://www.microsoft.com/technet/community/newsgroups/server/sql.mspx
Formazione e mentoring
–
–
http://www.microsoft.com/italy/traincert
http://www.solidqualitylearning.com/
MERGE Statement
Grazie!
Scarica

source INNER JOIN target