Ti suggerisco di dividere la tua procedura memorizzata in due procedure che restituiscono rispettivamente una tabella separata e quelle chiamate a fogli di lavoro diversi.
Esistono diversi modi per restituire i dati a Excel utilizzando SQL
Ecco un mio preferito dal codice di Joshua (non è necessario utilizzare i parametri):
-
Seleziona la scheda Dati sulla barra multifunzione di Excel, quindi all'interno del gruppo Ottieni dati esterni scegli il menu a discesa "Da altre fonti". Quindi scegli "Da Microsoft Query"
-
Nella casella a comparsa "Scegli origine dati", seleziona il tuo SQL Server, quindi premi OK.
-
Se necessario, chiudi il popup "Aggiungi tabelle".
-
Fai clic sul pulsante "SQL" o scegli Visualizza> SQL per aprire l'editor pop-up SQL.
-
Immettere la seguente sintassi:{CALL myDatabaseName.dbo.myStoredProc (?, ?, ?)}
Ad esempio:{CALL northwind.dbo.spGetMaxCost (?, ?, ?)}
Assicurati di includere le parentesi graffe attorno all'istruzione di chiamata. Ogni punto interrogativo (?) indica un parametro. Se la tua procedura memorizzata richiede più o meno parametri, aggiungi o sottrai punti interrogativi secondo necessità.
-
Premi il pulsante OK. Dovrebbe apparire una finestra di domanda che dice "La query SQL non può essere rappresentata graficamente, continuare comunque?", basta premere il pulsante OK.
-
Ora ti verranno richiesti parametri di esempio per ogni punto interrogativo che hai incluso sopra. Inserisci valori di parametro validi per i dati che stai interrogando.
-
Dopo aver inserito l'ultimo parametro, dovresti ottenere alcuni risultati in Microsoft Query. Se hanno un bell'aspetto, chiudi Microsoft Query.
-
Ora dovresti visualizzare un pop-up "Importa dati". Fai clic sul pulsante Proprietà, che farà apparire il popup "Proprietà di connessione".
-
Seleziona la scheda Definizione, quindi seleziona il pulsante Parametri. Ora dovresti vedere un pop-up "Parametri", in cui puoi collegare il parametro a una cella specifica.
-
Seleziona Ottieni il valore dalla cella seguente, quindi connettiti a una cella appropriata in Excel che conterrà il tuo parametro, facendo clic sulla casetta con la freccia.
-
Se desideri che i dati si aggiornino ogni volta che modifichi la cella contenente il parametro, seleziona la casella "Aggiorna automaticamente quando il valore della cella cambia"
-
Continuare come sopra per gli altri parametri. Al termine, fare clic su OK per tornare al popup Proprietà connessione. Fare clic su OK per tornare al popup Importa dati e fare nuovamente clic su OK.
-
Ora dovresti avere alcuni dati direttamente dalla tua procedura memorizzata.
Ti ritroverai con informazioni di connessione simili a:
Informazioni sulla connessione
E, se usi i parametri del foglio, per il mio esempio,