I database riguardano le operazioni CRUD. Creiamo, leggiamo, aggiorniamo ed eliminiamo i dati in varie tabelle di database. Tuttavia, la maggior parte delle operazioni CRUD in un database richiedono una logica separata per le attività, come l'inserimento, l'aggiornamento e l'eliminazione.
Questo può diventare ridondante rapidamente. SQL Server fornisce un modo efficiente di eseguire operazioni CRUD utilizzando l'istruzione Merge. Microsoft ha introdotto l'istruzione Merge in SQL Server 2008 e superiore.
Questo tutorial capirà come utilizzare l'istruzione di unione SQL Server per eseguire più operazioni in un'unica query.
Le basi
Facciamo un esempio di dove hai due tavoli. Le tabelle di destinazione e di origine. Se è necessario aggiornare i valori nella tabella di destinazione in base ai valori delle tabelle di origine, è possibile prendere tre percorsi:
Per eseguire le operazioni di cui sopra individualmente, dobbiamo creare tre logiche separate per l'inserto, eliminare e aggiornare le operazioni. Tuttavia, possiamo combinarli usando l'istruzione unione.
Possiamo esprimere la sintassi dell'istruzione unione come mostrato:
Unisci Target_table usando Source_tableIdentifichiamo la tabella di destinazione e di origine e li specifichiamo nella clausola di unione. Quindi specifichiamo una condizione. La condizione specificata controlla il modo in cui le righe dalla tabella di origine sono abbinate alle tabelle di destinazione. Pensalo come una condizione di join.
Il blocco successivo contiene le azioni da eseguire in base al risultato della condizione specificata.
Se la condizione provoca una corrispondenza, aggiorniamo i record nella tabella di destinazione dalla tabella di origine.
Tuttavia, se i record non sono eguali (dalla tabella di destinazione), inseriamo i record mancanti nella tabella di destinazione.
Infine, se i record non sono eguali (dalla tabella di destinazione), eliminiamo i record senza pari dalla tabella di destinazione.
SQL Server - Unisci esempio
Facciamo un semplice esempio. Supponiamo che abbiamo due tabelle contenenti informazioni sul prodotto come Products_target e Product_Source.
Lo snippet di codice di esempio mostra le query SQL per creare e aggiornare le tabelle specificate.
Usa SalesDB;Ora abbiamo due tabelle che si esibiscono come target e fonte. I record memorizzati nelle tabelle sono come mostrato:
Per sincronizzare i dati tra la tabella di destinazione e di origine, possiamo eseguire una query di unione come mostrato nell'esempio seguente:
Unisci prodotti_target come tUna volta eseguita la query sopra, il server SQL eseguirà le operazioni specificate in base alla condizione risultante.
Possiamo interrogare le tabelle dopo l'operazione di unione come:
Seleziona * da Products_Source;I valori risultanti sono come mostrati nell'esempio seguente:
Come noterai, i record della tabella di origine e target sono sincronizzati con i valori aggiornati, inseriti ed eliminati.
Conclusione
Questa guida mostra come lavorare con l'istruzione di unione SQL Server. Ti consente di eseguire insert, aggiornare ed eliminare le operazioni su tabelle in base alle condizioni risultanti.
Grazie per aver letto!