web-dev-qa-db-fra.com

Copiez une grande quantité de données à partir du résultat de la requête SQL

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 faire savoir comment copier toutes les données et les coller dans Excel.

Je ne veux pas l'exporter vers 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

9
Sohail

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.

Save Results As

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

Where is the wizard?

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

Source

Choisissez une destination Excel.

Destination

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

Pick a query

Collez votre requête

Paste in your query

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

Select source tables

Voici la liste des mappages que vous pouvez consulter

List of mappings

Et à partir de là, 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.

Save and run options

Ensuite, appuyez simplement sur finition et terminez à nouveau.

17
Kenneth Fisher

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 64k lignes. Pour automatiser, planifiez le rapport.

Références pour ces commandes:

entrée Technet sqlcmd

entrée Technet bcp

social.msdn sqlcmd tab délimité par un forum

2
Anti-weakpasswords

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).

0
Chewy