sql >> Database >  >> RDS >> Sqlserver

Exporteer het resultaat van de opgeslagen procedure naar Excel in SSMS

Ik stel voor dat u uw opgeslagen procedure opsplitst in twee procedures die elk respectievelijk een aparte tabel retourneren en deze naar verschillende werkbladen laten aanroepen.

Er zijn verschillende manieren om gegevens naar Excel terug te sturen met SQL

Hier is een favoriet van mij uit de code van Joshua (je hoeft de parameters niet te gebruiken):

  1. Selecteer het tabblad Gegevens op het lint van Excel en kies vervolgens in de groep Externe gegevens ophalen de vervolgkeuzelijst "Van andere bronnen". Kies vervolgens "Van Microsoft Query"

  2. Selecteer in het pop-upvenster "Kies gegevensbron" uw SQL Server en druk op OK.

  3. Sluit indien nodig de pop-up "Tabellen toevoegen".

  4. Klik op de "SQL" knop, of kies Beeld> SQL om de SQL pop-up editor te openen.

  5. Voer de volgende syntaxis in:{CALL myDatabaseName.dbo.myStoredProc (?, ?, ?)}

    Bijvoorbeeld:{BEL noordenwind.dbo.spGetMaxCost (?, ?, ?)}

    Zorg ervoor dat u de kronkelige accolades rond de oproepinstructie opneemt. Elk vraagteken (?) geeft een parameter aan. Als uw opgeslagen procedure meer of minder parameters vereist, voegt u waar nodig vraagtekens toe of trekt u deze af.

  6. Druk op de OK-knop. Er zou een vraagvenster moeten verschijnen met de tekst "SQL-query kan niet grafisch worden weergegeven, toch doorgaan?", druk gewoon op de knop OK.

  7. U wordt nu gevraagd om voorbeeldparameters voor elk vraagteken dat u hierboven hebt opgenomen. Voer geldige parameterwaarden in voor de gegevens die u opvraagt.

  8. Nadat u de laatste parameter hebt ingevoerd, zou u enkele resultaten moeten terugkrijgen in Microsoft Query. Als ze er goed uitzien, sluit u Microsoft Query.

  9. U zou nu naar een pop-upvenster "Gegevens importeren" moeten kijken. Klik op de knop Eigenschappen, waardoor de pop-up "Verbindingseigenschappen" verschijnt.

  10. Selecteer het tabblad Definitie en selecteer vervolgens de knop Parameters. U zou nu een pop-upvenster "Parameters" moeten zien, waar u de parameter aan een specifieke cel kunt koppelen.

  11. Selecteer Haal de waarde uit de volgende cel en maak vervolgens verbinding met een geschikte cel in Excel die uw parameter bevat, door op het kleine vakje met de pijl te klikken.

  12. Als u wilt dat de gegevens worden vernieuwd telkens wanneer u de cel met de parameter wijzigt, vinkt u het vakje aan met de tekst "Automatisch vernieuwen wanneer celwaarde verandert"

  13. Ga verder zoals hierboven voor de andere parameters. Als u klaar bent, klikt u op OK om terug te keren naar het pop-upvenster Verbindingseigenschappen. Klik op OK om terug te keren naar het pop-upvenster Gegevens importeren en klik nogmaals op OK.

  14. U zou nu enkele gegevens rechtstreeks uit uw opgeslagen procedure moeten hebben.

U krijgt verbindingsinformatie die lijkt op:

Verbindingsinformatie

En als je parameters uit het blad gebruikt, dan, voor mijn voorbeeld,



  1. Wijzig of stel MySQL Long Query Time Value in voor log-slow-query's

  2. PostgreSQL Reverse LIKE

  3. psql:FATAL:Identificatie mislukt voor gebruiker postgres

  4. EF en TransactionScope voor zowel SQL Server als Oracle zonder te escaleren/overspannen naar DTC?