Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Exporter le jeu de résultats de la procédure stockée vers Excel dans SSMS

Je vous suggère de diviser votre procédure stockée en deux procédures qui renvoient chacune respectivement une table distincte et qui sont appelées dans différentes feuilles de calcul.

Il existe plusieurs façons de renvoyer des données vers Excel à l'aide de SQL

Voici un de mes favoris du code de Joshua (vous n'êtes pas obligé d'utiliser les paramètres) :

  1. Sélectionnez l'onglet Données sur le ruban d'Excel, puis dans le groupe Obtenir des données externes, choisissez le menu déroulant "À partir d'autres sources". Choisissez ensuite "À partir de Microsoft Query"

  2. Dans la boîte de dialogue "Choisir la source de données", sélectionnez votre serveur SQL, puis cliquez sur OK.

  3. Fermez la popup "Ajouter des tables" si nécessaire.

  4. Cliquez sur le bouton "SQL" ou choisissez Affichage > SQL pour ouvrir l'éditeur contextuel SQL.

  5. Saisissez la syntaxe suivante :{CALL myDatabaseName.dbo.myStoredProc (?, ?, ?)}

    Par exemple :{CALL northwind.dbo.spGetMaxCost (?, ?, ?)}

    Assurez-vous d'inclure les accolades ondulées autour de l'instruction d'appel. Chaque point d'interrogation (?) indique un paramètre. Si votre procédure stockée demande plus ou moins de paramètres, ajoutez ou soustrayez des points d'interrogation selon vos besoins.

  6. Appuyez sur le bouton OK. Une boîte de question devrait apparaître indiquant "La requête SQL ne peut pas être représentée graphiquement, continuez quand même ?", appuyez simplement sur le bouton OK.

  7. On vous demandera maintenant des exemples de paramètres pour chaque point d'interrogation que vous avez inclus ci-dessus. Entrez des valeurs de paramètre valides pour les données que vous interrogez.

  8. Une fois que vous avez entré le dernier paramètre, vous devriez obtenir des résultats dans Microsoft Query. S'ils semblent bons, fermez Microsoft Query.

  9. Vous devriez maintenant voir une fenêtre contextuelle "Importer des données". Cliquez sur le bouton Propriétés, ce qui fera apparaître la fenêtre contextuelle "Propriétés de la connexion".

  10. Sélectionnez l'onglet Définition, puis sélectionnez le bouton Paramètres. Vous devriez maintenant voir une fenêtre contextuelle "Paramètres", où vous pouvez connecter le paramètre à une cellule spécifique.

  11. Sélectionnez Obtenir la valeur de la cellule suivante, puis connectez-vous à une cellule appropriée dans Excel qui contiendra votre paramètre, en cliquant sur la petite case avec la flèche.

  12. Si vous souhaitez que les données soient actualisées à chaque fois que vous modifiez la cellule contenant le paramètre, cochez la case "Actualiser automatiquement lorsque la valeur de la cellule change"

  13. Continuer comme ci-dessus pour les autres paramètres. Lorsque vous avez terminé, cliquez sur OK pour revenir à la fenêtre contextuelle des propriétés de connexion. Cliquez sur OK pour revenir à la fenêtre contextuelle Importer des données, puis cliquez à nouveau sur OK.

  14. Vous devriez maintenant avoir des données provenant directement de votre procédure stockée.

Vous vous retrouverez avec des informations de connexion similaires à :

Informations de connexion

Et, si vous utilisez les paramètres de la feuille, pour mon exemple,