Procedure memorizzate in SQL | Una panoramica

Procedure memorizzate in SQL | Una panoramica

In questo blog, discuteremo delle stored procedure in SQL che puoi utilizzare per salvare un set di codice e utilizzarlo ripetutamente ogni volta che ne hai bisogno. Le stored procedure sono simili alle viste. Tuttavia, puoi eseguire operazioni di tabella comuni come DROP, TRUNCATE, DELETE, ecc. Con procedure memorizzate che non puoi eseguire con le viste.

Anche le stored procedure sono precompilate in modo che vengano eseguite più velocemente delle visualizzazioni. Inoltre riduce al minimo la quantità di dati inviati al server del database.

Sommario

Sintassi per le stored procedure in SQL: senza parametri

Per creare una stored procedure senza parametri, è necessario iniziare con la funzione CREATE . Quindi aggiungi la funzione PROC , digita il nome della procedura subito dopo e aggiungi la funzione AS .

Procedure memorizzate in SQL |  Una panoramica

La creazione di una stored procedure in è simile alla creazione di tabelle e viste. Tuttavia, la differenza sta nel processo di acquisizione dei dati.

Ad esempio, se vogliamo ottenere dati da una vista, usiamo " SELECT * FROM view_name ". D'altra parte, per le procedure memorizzate, usiamo EXEC che significa "esegui", quindi digitiamo il nome della procedura memorizzata dopo.

Procedure memorizzate in SQL |  Una panoramica

Una volta eseguita una procedura memorizzata , verranno visualizzate anche le informazioni in base alle istruzioni o ai comandi che hai aggiunto.

Sintassi per le stored procedure in SQL: con parametri

Passiamo alla . Il processo è simile all'esempio precedente che ho dimostrato. L'unica differenza è che devi includere i parametri prima della funzione AS e anche il tipo di dati subito dopo.

Procedure memorizzate in SQL |  Una panoramica

Puoi anche utilizzare il parametro che hai dichiarato nella creazione della stored procedure nei tuoi comandi. Questo è per te per risparmiare tempo inserendo più valori. Ad esempio, invece di digitare manualmente customerID1 , customerID2 e così via, abbiamo utilizzato @custid o il parametro per evitare di avere un lungo set di codice.

Procedure memorizzate in SQL |  Una panoramica

Si noti che quando si utilizza o si include un parametro, è importante utilizzare il simbolo @ . Puoi anche includere tutti i parametri che desideri, non solo uno. Questo è il modo in cui eseguiamo le stored procedure con i parametri.

Procedure memorizzate in SQL |  Una panoramica

Come puoi notare, abbiamo utilizzato anche il parametro con valore pari a 1 nell'esecuzione della stored procedure. Questo porterà solo le informazioni di custid1 .

Esempio di scenario di stored procedure in SSMS

Facciamo altri esempi di stored procedure in SQL. In prima istanza, creerò una stored procedure di esempio utilizzando il comando evidenziato di seguito.

Procedure memorizzate in SQL |  Una panoramica

Per convenzione di denominazione nella creazione di una stored procedure, di solito usiamo "usp" o "sp" per indicare che si tratta di una stored procedure. Se ti stai chiedendo cosa significhi "usp", significa semplicemente procedura memorizzata definita dall'utente. 

Successivamente, scriveremo query per la stored procedure da elaborare quando viene eseguita.

Procedure memorizzate in SQL |  Una panoramica

Le query nell'esempio precedente rimuoveranno semplicemente la tabella denominata dbo.stageOrders . Quindi ricreerà dbo.stageOrders con i dati della tabella Sales.SalesOrderHeader

Creiamo questa stored procedure evidenziando il seguente codice e cliccando sul pulsante Execute .

Procedure memorizzate in SQL |  Una panoramica

Successivamente, dovresti vedere un messaggio come questo.

Procedure memorizzate in SQL |  Una panoramica

Quindi ora eseguiremo la stored procedure eseguendo EXEC usp_TEST .

Procedure memorizzate in SQL |  Una panoramica

Dopo l'esecuzione della stored procedure usp_TEST , dbo.stageOrders ora dovrebbe avere i dati da Sales.SalesOrderHeader . Controlliamo il contenuto di dbo.stageOrders eseguendo il comando seguente.

Procedure memorizzate in SQL |  Una panoramica

Di conseguenza, questi sono i dati che abbiamo creato in dbo.stageOrders in base ai comandi che abbiamo aggiunto alla nostra stored procedure.

Procedure memorizzate in SQL |  Una panoramica

Secondo scenario di esempio

Passiamo a un altro esempio. Questa volta non voglio eliminare la tabella dbo.stageOrders e ricreare la stessa tabella con i dati provenienti dalla tabella Sales.SalesOrderHeader .

Invece, voglio solo che i dati dalla tabella Sales.SalesOrderHeader vengano visualizzati ogni volta che eseguo la stored procedure " usp_TEST " .

Per eseguire ciò, è necessario apportare modifiche alla stored procedure creata di recente utilizzando l' istruzione ALTER .

Procedure memorizzate in SQL |  Una panoramica

In questo esempio, abbiamo utilizzato l' istruzione ALTER che viene utilizzata per modificare la nostra procedura memorizzata. Puoi anche applicarlo a viste e tabelle. Una volta eseguito il codice nello screenshot sopra, dovrebbe cambiare le query che devono essere elaborate dalla nostra procedura memorizzata.

Questa volta non ricreerà nessuna tabella come abbiamo fatto in precedenza. Se eseguiamo " usp_TEST ", porterà solo i dati dalla tabella Sales.SalesOrderHeader .

Procedure memorizzate in SQL |  Una panoramica

Procedure memorizzate in SQL |  Una panoramica

Terzo scenario di esempio

Facciamo un altro esempio. Questa volta riutilizzeremo la tabella dbo.stageOrders che avevamo nel nostro primo esempio di creazione di una stored procedure in SSMS . Inizieremo con questo esempio selezionando la tabella dbo.stageOrders. 

Procedure memorizzate in SQL |  Una panoramica

I risultati dopo aver selezionato tutti i dati da dbo.stageOrders dovrebbero essere così.

Procedure memorizzate in SQL |  Una panoramica

Ora svuotiamo la tabella dbo.stageOrders eseguendo usp_TEST . Possiamo farlo aggiungendo il seguente comando.

Procedure memorizzate in SQL |  Una panoramica

Dopo aver aggiunto il comando TRUNCATE TABLE , dobbiamo aggiornare usp_TEST .

Procedure memorizzate in SQL |  Una panoramica

Successivamente, dovrebbe essere visualizzato un messaggio che dice che i comandi sono stati completati correttamente . Quindi eseguiremo nuovamente usp_TEST .

Procedure memorizzate in SQL |  Una panoramica

Dopo l'esecuzione usp_TEST , mostrerà tutti i record da Sales.SalesOrderHeader e svuoterà anche la tabella dbo.stageOrders

Procedure memorizzate in SQL |  Una panoramica

Per verificare se la tabella dbo.stageOrders è vuota, dobbiamo selezionarla utilizzando il seguente comando ed eseguire.

Procedure memorizzate in SQL |  Una panoramica

Dopo aver eseguito il codice sopra, possiamo vedere che la tabella dbo.stageOrders è ora vuota. Ciò è dovuto al comando TRUNCATE TABLE che abbiamo utilizzato per aggiornare usp_TEST .

Procedure memorizzate in SQL |  Una panoramica

Posizione delle stored procedure salvate in SQL

Se vuoi vedere dove viene salvata la procedura memorizzata in SQL , vai al pannello Esplora oggetti sul lato sinistro e fai clic sull'icona " + " prima del database su cui stai lavorando.

Procedure memorizzate in SQL |  Una panoramica

Quindi fare clic con il pulsante destro del mouse su Programmabilità e selezionare Aggiorna .

Procedure memorizzate in SQL |  Una panoramica

Procedure memorizzate in SQL |  Una panoramica

Espandere la cartella o il gruppo Programmabilità facendo clic sull'icona " + ". Quindi espandere il gruppo Stored procedure eseguendo lo stesso passaggio. All'interno del gruppo Stored Procedure, dovresti vedere dbo.usp_TEST .

Procedure memorizzate in SQL |  Una panoramica

Procedure memorizzate in SQL |  Una panoramica

Se si desidera verificare quali comandi o query sta eseguendo una procedura memorizzata specifica in SQL, è possibile fare clic con il pulsante destro del mouse su una procedura memorizzata e seguire i passaggi nello screenshot seguente.

Procedure memorizzate in SQL |  Una panoramica

Successivamente, aprirà la procedura memorizzata in una scheda diversa in cui è possibile visualizzare i comandi forniti in essa. Ecco come appare dbo.usp_TEST all'apertura.

Procedure memorizzate in SQL |  Una panoramica

Come puoi vedere, ci sono alcuni comandi predefiniti prima dell'istruzione CREATE . Puoi semplicemente eliminarlo se lo desideri. 

Procedure memorizzate in SQL |  Una panoramica

Ora sai come controllare quali comandi sta eseguendo una stored procedure in SQL .

Creazione di una stored procedure in SQL con parametri

Successivamente, creeremo una stored procedure con parametri. Ad esempio, utilizzeremo il seguente codice per creare una nuova stored procedure.

Procedure memorizzate in SQL |  Una panoramica

Nel codice di esempio, ho utilizzato lo stesso processo di creazione di una stored procedure denominata usp_GetCustomer . Quindi ho aggiunto un parametro che è @CustomerID con un tipo di input di INT .

Tieni presente che una volta aggiunto un parametro nella creazione di una procedura memorizzata, dovresti sempre fornire un parametro ogni volta che eseguirai un comando.

Vediamo cosa accadrà se eseguiamo usp_GetCustomer senza fornire un parametro.

Procedure memorizzate in SQL |  Una panoramica

Dopo aver eseguito usp_GetCustomer senza un parametro, è apparso un messaggio di errore. Ecco come apparirebbe se eseguissimo usp_GetCustomer con un parametro.

Procedure memorizzate in SQL |  Una panoramica

Con un parametro fornito, siamo in grado di ottenere un risultato corretto nell'esecuzione della nostra procedura memorizzata .

Creazione di una stored procedure con un valore predefinito

Se si desidera evitare di ricevere un messaggio di errore durante l'esecuzione di una stored procedure con un parametro, è possibile impostare un valore predefinito che fungerà da parametro predefinito.

Ad esempio, creeremo una stored procedure denominata usp_GetOrdersByYear .

Quindi aggiungerò un parametro @OrderYear con il tipo di input " INT " e un valore predefinito uguale a 2011 .

Procedure memorizzate in SQL |  Una panoramica

Se eseguiamo usp_GetOrdersByYear senza un parametro fornito, verranno visualizzati i record con l'anno 2011 .

Procedure memorizzate in SQL |  Una panoramica

Procedure memorizzate in SQL |  Una panoramica

D'altra parte, se eseguiamo usp_GetOrdersByYear con 2014 come dato parametro, dovrebbe visualizzare i record con l'anno 2014 .

Procedure memorizzate in SQL |  Una panoramica

Procedure memorizzate in SQL |  Una panoramica

Questo è il modo in cui utilizzi le stored procedure nelle tue attività quotidiane di gestione dei dati.

HAVING Clausola nelle funzioni di aggregazione SQL
ISNULL Funzione SQL nelle istruzioni Case
Estrazione dei dati SQL mediante OFFSET e FETCH

Conclusione

Tenendo conto di tutto, hai imparato cos'è una stored procedure in SQL e il suo scopo. Abbiamo anche discusso l' istruzione ALTER che viene utilizzata per apportare modifiche o aggiornamenti in una procedura memorizzata presente.

Inoltre, hai appreso che esistono diversi metodi per creare stored procedure in SQL e come evitare di ricevere errori durante l'esecuzione di una stored procedure fornendo un valore predefinito.

Ancora più importante, hai imparato a utilizzare le stored procedure per archiviare set di comandi per evitare di eseguire ripetutamente lunghi set di codice. Come promemoria finale, non dimenticare di utilizzare il simbolo " @ " quando fornisci un parametro.

Ti auguro il meglio,

Hafiz


Cosè il sé in Python: esempi del mondo reale

Cosè il sé in Python: esempi del mondo reale

Cos'è il sé in Python: esempi del mondo reale

Come salvare e caricare un file RDS in R

Come salvare e caricare un file RDS in R

Imparerai come salvare e caricare oggetti da un file .rds in R. Questo blog tratterà anche come importare oggetti da R a LuckyTemplates.

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

In questa esercitazione sul linguaggio di codifica DAX, scopri come usare la funzione GENERATE e come modificare dinamicamente il titolo di una misura.

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Questo tutorial illustrerà come utilizzare la tecnica di visualizzazione dinamica multi-thread per creare approfondimenti dalle visualizzazioni di dati dinamici nei report.

Introduzione al filtraggio del contesto in LuckyTemplates

Introduzione al filtraggio del contesto in LuckyTemplates

In questo articolo, esaminerò il contesto del filtro. Il contesto del filtro è uno degli argomenti principali che qualsiasi utente di LuckyTemplates dovrebbe inizialmente conoscere.

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

Voglio mostrare come il servizio online di LuckyTemplates Apps può aiutare nella gestione di diversi report e approfondimenti generati da varie fonti.

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Scopri come elaborare le modifiche al margine di profitto utilizzando tecniche come la ramificazione delle misure e la combinazione di formule DAX in LuckyTemplates.

Idee di materializzazione per cache di dati in DAX Studio

Idee di materializzazione per cache di dati in DAX Studio

Questo tutorial discuterà delle idee di materializzazione delle cache di dati e di come influiscono sulle prestazioni dei DAX nel fornire risultati.

Reporting aziendale tramite LuckyTemplates

Reporting aziendale tramite LuckyTemplates

Se finora utilizzi ancora Excel, questo è il momento migliore per iniziare a utilizzare LuckyTemplates per le tue esigenze di reportistica aziendale.

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cos'è il gateway LuckyTemplates? Tutto quello che devi sapere