Copiez des données volumineuses à partir du résultat de la requête SQL


9

Dans mon serveur SQL 2008, après avoir exécuté la requête, le retour de données est très important, disons en millions. J'ai essayé de copier mais cela donne une erreur de mémoire sql d'exception. Pouvez-vous nous dire comment puis-je copier toutes les données et les coller dans Excel.

Je ne veux pas l'exporter dans un fichier txt car les données ne sont pas alignées. Je veux donc le copier et le coller manuellement dans Excel. Veuillez me faire savoir la solution pour ce


À titre de clarification: vous pourriez obtenir une exception de «mémoire insuffisante» lorsque SSMS essaie de gérer les données entrantes; s'il y a plus que la mémoire, vous obtiendrez cette erreur. Si cela ne provoque pas l'erreur de mémoire insuffisante, mais cela se produit lorsque vous essayez de copier et coller les données, le problème réside dans sa copie des données en mémoire une deuxième fois pour le copier-coller. Toute réponse qui implique de contourner le retour des données à SMSS (comme la réponse actuellement acceptée ) évite cela.
RDFozz

Réponses:


17

Vous ne pourrez pas copier et coller comme vous le souhaitez. Cependant, vous avez plusieurs options. Le plus simple est de cliquer avec le bouton droit sur la sortie et de l'enregistrer en tant que fichier CSV. Cela suppose que vous n'ayez pas de virgule dans vos données de texte.

Enregistrer les résultats sous

Votre prochaine option (et probablement la meilleure) est d'utiliser l'assistant d'exportation. Faites un clic droit sur le nom de votre base de données, puis sur Tâches, puis sur Assistant d'exportation

Où est l'assistant?

Votre source sera la base de données sur laquelle vous avez cliqué avec le bouton droit.

La source

Choisissez une destination excellente.

Destination

Sélectionnez Écrire une requête pour spécifier les données à transférer.

Choisissez une requête

Collez votre requête

Collez votre requête

Vous pouvez modifier le nom de la feuille dans votre feuille de calcul ici.

Sélectionnez les tables source

Voici la liste des mappages que vous pouvez consulter

Liste des mappages

Et à partir d'ici, vous pouvez exécuter le package immédiatement ou enregistrer le package SSIS pour une utilisation ultérieure / correctifs. Si votre exportation ne fonctionne pas la première fois et que vous connaissez bien SSIS, je voudrais enregistrer le package afin que vous puissiez y accéder et apporter des corrections en dehors de l'assistant.

Options d'enregistrement et d'exécution

Ensuite, il suffit de terminer et de terminer à nouveau.


2

Si vous insistez sur Excel comme destination, il existe deux options faciles.

Tout d'abord, le "sqlcmd.exe" ou "bcp.exe" natif vous permet d'exécuter une requête et de la générer automatiquement dans un fichier. En supposant que vos données n'ont pas d'onglets, la sortie délimitée par des tabulations sera automatiquement entrée dans les colonnes Excel. Si vos données ont des onglets, vous devrez choisir un autre délimiteur et avoir des colonnes de sélection Excel basées sur cela lors de l'importation.

Ensuite, déposez votre requête dans un rapport SSRS (SQL Server Reporting Services), exécutez-le, cliquez sur la flèche à droite de l'icône de disquette / d'enregistrement et exportez vers Excel. Des millions de lignes nécessitent SSRS 2012, enregistrées au format .xlsx - malheureusement, même SSRS 2008 R2 ne permet pas plus de 64 000 lignes. Pour automatiser, planifiez le rapport.

Références pour ces commandes:

Entrée technet sqlcmd

Entrée Technet BCP

social.msdn sqlcmd tabulation du forum délimitée


0

Si c'est juste une chose unique.

Exécutez la requête. Dans la fenêtre des résultats en bas à droite, cliquez sur le carré vide en haut à gauche. Enregistrer les résultats sous ... La valeur par défaut est un CSV, choisissez l'endroit où vous voulez vider le fichier (partage réseau ou local).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.