220 votes

Enregistrer les résultats avec en-têtes dans SQL Server Management Studio

Je utilise SQL Server Management Studio.

Je souhaite sauvegarder les résultats d'une requête dans un fichier Excel.

Je choisis "Enregistrer sous" et ensuite je sauvegarde dans un fichier CSV que je peux ouvrir dans Excel. Tout est bon sauf que je manque les en-têtes de colonnes, avez-vous des idées sur comment les exporter?

328voto

Diego Points 13953

Outils > Options > Résultats de la requête > Serveur SQL > Résultats en texte (ou en grille si vous préférez) > Inclure les en-têtes de colonne dans l'ensemble de résultats

Vous pourriez devoir fermer et rouvrir SSMS après avoir modifié cette option.

Note : Sur la barre d'outils de l'éditeur SQL, vous pouvez cliquer sur Résultats dans un fichier (cf. capture d'écran) sans avoir à redémarrer SSMS.

description de l'image ici

Alternativement, vous pouvez également appuyer sur Ctrl + Maj + F si vous préférez les raccourcis clavier pendant le développement.

41 votes

+1, J'ai testé cela et ça fonctionne: Outils -> Options -> Résultats de la requête -> SQL Server -> Résultats dans la grille, puis cochez 'Inclure les en-têtes de colonne lors de la copie ou de l'enregistrement des résultats'.

62 votes

Cela fonctionne pour SSMS 2012 - vous devez redémarrer SSMS pour que les paramètres prennent effet.

22 votes

Pour confirmer, vous devez absolument fermer et rouvrir SSMS pour que cette option soit appliquée.

37voto

John Dewey Points 3942

Essayez l'Assistant d'Exportation. Dans cet exemple, je sélectionne une table entière, mais vous pouvez tout aussi facilement spécifier une requête :

saisissez ici la description de l'image

saisissez ici la description de l'image

saisissez ici la description de l'image

saisissez ici la description de l'image

(vous pouvez également spécifier une requête ici)

saisissez ici la description de l'image

saisissez ici la description de l'image

saisissez ici la description de l'image

saisissez ici la description de l'image

saisissez ici la description de l'image

6 votes

Merci pour cela. Mais cela concerne les tables. Ma question était pour une requête.

1 votes

Vous pouvez également spécifier une requête à l'étape quatre - "Spécifier la Copie de Table ou la Requête".

0 votes

J'ai essayé toutes les autres méthodes, et c'est la seule qui a fonctionné pour mes types de données mixtes.

37voto

John Dewey Points 3942

Une autre possibilité est d'utiliser le presse-papiers pour copier et coller les résultats directement dans Excel. Faites simplement attention avec les colonnes Excel de type Général, car elles peuvent parfois donner des résultats imprévisibles, selon vos données. CTL-A n'importe où dans la grille de résultats, puis faites un clic droit :

entrer la description de l'image ici

Si vous avez des problèmes avec le format Général d'Excel effectuant des conversions indésirables, sélectionnez les colonnes vides dans Excel avant de coller et changez le format en "texte".

1 votes

C'est super, sauf pour le formatage Excel. Les numéros avec des zéros en tête (par ex. les numéros de portables) perdent les zéros dans Excel. Il y a d'autres problèmes de formatage qui vous guettent également, utilisez à vos risques et périls. Merci Microsoft!

0 votes

Un truc que j'ai appris pour le formatage Excel est de le coller, puis (avec la zone collée encore surlignée) changer le format de la zone sélectionnée en Texte. Ensuite, recoller par dessus. Maintenant, les zéros initiaux etc. devraient être préservés.

14voto

Il faut au moins dans SQL Server 2012, faire un clic droit dans la fenêtre de requête et sélectionner Options de la requête. De là, vous pouvez sélectionner Inclure les en-têtes pour le grille et/ou le texte et faire en sorte que l'option Enregistrer sous fonctionne comme vous le souhaitez sans redémarrer SSMS.

Vous devrez toujours le modifier dans Outils->Options dans la barre de menu pour que les nouvelles fenêtres de requête utilisent ces paramètres par défaut.

6voto

Chris Dimitriu Points 11

Sélectionnez vos résultats en cliquant dans le coin supérieur gauche du volet Résultats, faites un clic droit, puis sélectionnez "Copier avec en-têtes" (Voir capture d'écran). Collez dans Excel. C'est fait!

entrez la description de l'image ici

Alternatively, you can also press Ctrl + Shift + C if you like keyboard shortcuts during development.

1 votes

Ce n'est pas si idéal lorsque vous avez besoin de copier une très grande quantité de données.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X