sql >> Databasteknik >  >> RDS >> Sqlserver

Exportera lagrat procedurresultat till Excel i SSMS

Jag föreslår att du delar upp din lagrade procedur i två procedurer som var och en returnerar en separat tabell och kallar de till olika arbetsblad.

Det finns en mängd olika sätt att returnera data till Excel med SQL

Här är en favorit till mig från code by Joshua (du behöver inte använda parametrarna):

  1. Välj fliken Data på Excels menyfliksområdet och välj sedan rullgardinsmenyn "Från andra källor" i gruppen Hämta externa data. Välj sedan "Från Microsoft Query"

  2. I popuprutan "Välj datakälla", välj din SQL-server och tryck sedan på OK.

  3. Stäng popup-fönstret "Lägg till tabeller" om det behövs.

  4. Klicka på "SQL"-knappen eller välj Visa> SQL för att öppna SQL popup-redigeraren.

  5. Ange följande syntax:{CALL myDatabaseName.dbo.myStoredProc (?, ?, ?)}

    Till exempel:{CALL northwind.dbo.spGetMaxCost (?, ?, ?)}

    Var noga med att inkludera de snirkliga hängslen runt samtalsförklaringen. Varje frågetecken (?) indikerar en parameter. Om din lagrade procedur kräver fler eller färre parametrar, lägg till eller subtrahera frågetecken efter behov.

  6. Tryck på OK-knappen. En frågeruta bör dyka upp som säger "SQL-fråga kan inte representeras grafiskt, fortsätt ändå?", tryck bara på OK-knappen.

  7. Du kommer nu att bli tillfrågad om exempelparametrar för varje frågetecken du inkluderade ovan. Ange giltiga parametervärden för de data du frågar efter.

  8. När du har angett den sista parametern bör du få några resultat tillbaka i Microsoft Query. Om de ser bra ut, stäng Microsoft Query.

  9. Du bör nu titta på en "Importera data"-popup. Klicka på knappen Egenskaper, vilket visar popup-fönstret "Anslutningsegenskaper".

  10. Välj fliken Definition och välj sedan knappen Parametrar. Du bör nu se en "Parameters" popup, där du kan koppla parametern till en specifik cell.

  11. Välj Hämta värdet från följande cell och anslut sedan till en lämplig cell i Excel som innehåller din parameter genom att klicka på den lilla rutan med pilen.

  12. Om du vill att data ska uppdateras varje gång du ändrar cellen som innehåller parametern, markera rutan "Uppdatera automatiskt när cellvärdet ändras"

  13. Fortsätt som ovan för de andra parametrarna. När du är klar klickar du på OK för att återgå till popup-fönstret Anslutningsegenskaper. Klicka på OK för att återgå till popup-fönstret Importera data och klicka på OK igen.

  14. Du bör nu ha en del data direkt från din lagrade procedur.

Du kommer att få anslutningsinformation som liknar:

Anslutningsinformation

Och om du använder parametrar från ark så, till exempel,



  1. ORA-00604 ORA-12705

  2. Tillkännage den allmänna tillgängligheten för SQL Secure 4.0

  3. TO_DAYS() Exempel – MySQL

  4. Kan någon förklara vad MERGE-satsen verkligen gör i Oracle?