In questa lezione affronteremo i seguenti argomenti:
• Istruzioni di controllo di flusso: IF...ELSE, CASE, e altri
• Cicli WHILE per iterare attraverso i risultati
• Gestione delle eccezioni con TRY...CATCH
• Utilizzo delle etichette e dei salti condizionali
Istruzioni di controllo di flusso: IF...ELSE, CASE, e altri:
Le istruzioni di controllo di flusso consentono di gestire il flusso di esecuzione del programma in base a condizioni specifiche.
Esempio con IF...ELSE:
DECLARE @Voto INT = 75;
IF @Voto >= 60
PRINT 'Studente promosso';
ELSE
PRINT 'Studente bocciato';
Questa istruzione verifica se il voto è maggiore o uguale a 60 e stampa il risultato.
Esempio con CASE:
DECLARE @GiornoSettimana INT = 3;
DECLARE @NomeGiorno NVARCHAR(10);
SET @NomeGiorno = CASE WHEN @GiornoSettimana = 1 THEN 'Lunedì'
WHEN @GiornoSettimana = 2 THEN 'Martedì'
WHEN @GiornoSettimana = 3 THEN 'Mercoledì'
ELSE 'Altro'
END;
PRINT @NomeGiorno;
Questa istruzione CASE restituisce il nome del giorno in base al valore della variabile @GiornoSettimana.
Cicli WHILE per iterare attraverso i risultati:
Il ciclo WHILE permette di eseguire iterazioni fino a quando una condizione specifica è vera.
Esempio:
DECLARE @Contatore INT = 1;
WHILE @Contatore <= 5
BEGIN
PRINT 'Iterazione ' + CAST(@Contatore AS NVARCHAR(2));
SET @Contatore = @Contatore + 1;
END;
Questo ciclo WHILE esegue un'iterazione stampando un messaggio finché il contatore è minore o uguale a 5.
Gestione delle eccezioni con TRY...CATCH:
TRY...CATCH consente di gestire eccezioni e errori in modo controllato.
Esempio:
BEGIN TRY
-- Istruzioni che potrebbero generare un errore
DECLARE @Risultato INT = 1 / 0;
END TRY
BEGIN CATCH
-- Blocco di gestione delle eccezioni
PRINT 'Errore: ' + ERROR_MESSAGE();
END CATCH;
Questo blocco TRY...CATCH cattura e gestisce un eventuale errore durante l'esecuzione delle istruzioni nel blocco TRY.
Utilizzo delle etichette e dei salti condizionali:
Le etichette e i salti condizionali permettono di modificare il flusso di esecuzione del programma.
Esempio:
DECLARE @Flag BIT = 1;
IF @Flag = 1 GOTO Etichetta1;
PRINT 'Questo verrà saltato';
Etichetta1:
PRINT 'Questa istruzione verrà eseguita';
L'istruzione GOTO salta a una determinata etichetta in base alla condizione specificata.
In questa lezione, abbiamo esplorato il controllo di flusso in Transact-SQL attraverso le istruzioni IF...ELSE, CASE, cicli WHILE, TRY...CATCH e l'uso di etichette con GOTO.
Questi strumenti sono fondamentali per gestire dinamicamente il flusso del programma in scenari complessi.
Nelle prossime lezioni, approfondiremo la progettazione di query avanzate e l'ottimizzazione delle prestazioni.