Kopieren Sie große Daten aus dem SQL-Abfrageergebnis

9

In meinem SQL Server 2008 ist die Datenrückgabe nach dem Ausführen der Abfrage sehr groß, etwa in Millionen. Ich habe versucht zu kopieren, aber es gibt eine Ausnahme SQL-Speicherfehler. Können Sie uns mitteilen, wie ich die gesamten Daten kopieren und in Excel einfügen kann?

Ich möchte es nicht in eine txt-Datei exportieren, da die Daten nicht ausgerichtet werden. Also möchte ich es manuell kopieren und in Excel einfügen. Bitte lassen Sie mich die Lösung dafür wissen

Sohail
quelle
Zur Verdeutlichung: Wenn SSMS versucht, die eingehenden Daten zu verarbeiten, kann es zu einer Ausnahme "Nicht genügend Speicher" kommen. Wenn mehr als in den Speicher passt, wird dieser Fehler angezeigt. Wenn dies nicht zu einem Speicherfehler führt, der jedoch auftritt, wenn Sie versuchen, die Daten zu kopieren und einzufügen, liegt das Problem darin, dass die Daten zum Kopieren und Einfügen ein zweites Mal in den Speicher kopiert werden. Jede Antwort, bei der die Rückgabe der Daten an SMSS umgangen wird (z. B. die aktuell akzeptierte Antwort ), vermeidet dies.
RDFozz

Antworten:

17

Sie können nicht wie gewünscht kopieren und einfügen. Sie haben jedoch mehrere Möglichkeiten. Am einfachsten ist es, mit der rechten Maustaste auf die Ausgabe zu klicken und als CSV-Datei zu speichern. Dies setzt jedoch voraus, dass Ihre Textdaten keine Kommas enthalten.

Ergebnisse speichern unter

Ihre nächste Option (und wahrscheinlich die beste) ist die Verwendung des Exportassistenten. Klicken Sie mit der rechten Maustaste auf Ihren Datenbanknamen, dann auf Aufgaben und dann auf Exportassistent

Wo ist der Assistent?

Ihre Quelle ist die Datenbank, auf die Sie mit der rechten Maustaste geklickt haben.

Quelle

Wählen Sie ein Excel-Ziel.

Ziel

Wählen Sie die Option Abfrage schreiben, um die zu übertragenden Daten anzugeben.

Wählen Sie eine Abfrage

Fügen Sie Ihre Anfrage ein

Fügen Sie Ihre Anfrage ein

Hier können Sie den Blattnamen in Ihrer Tabelle ändern.

Wählen Sie Quelltabellen aus

Als Nächstes finden Sie eine Liste der Zuordnungen, die Sie überprüfen können

Liste der Zuordnungen

Und von hier aus können Sie das Paket entweder sofort ausführen oder das SSIS-Paket für spätere Verwendung / Korrekturen speichern. Wenn Ihr Export beim ersten Mal nicht funktioniert und Sie mit SSIS überhaupt vertraut sind, würde ich das Paket speichern, damit Sie es außerhalb des Assistenten korrigieren können.

Optionen speichern und ausführen

Dann einfach auf "Fertig stellen" klicken und erneut beenden.

Kenneth Fisher
quelle
2

Wenn Sie auf Excel als Ziel bestehen, gibt es zwei einfache Optionen.

Erstens können Sie mit der systemeigenen Datei "sqlcmd.exe" oder "bcp.exe" eine Abfrage ausführen und diese automatisch in eine Datei ausgeben. Angenommen, Ihre Daten haben keine Registerkarten, wird die durch Tabulatoren getrennte Ausgabe automatisch in Excel-Spalten eingegeben. Wenn Ihre Daten über Registerkarten verfügen, müssen Sie während des Imports ein anderes Trennzeichen auswählen und Excel darauf basierend Spalten auswählen.

Zweitens legen Sie Ihre Abfrage in einem SSRS-Bericht (SQL Server Reporting Services) ab, führen Sie ihn aus, klicken Sie auf den Pfeil rechts neben dem Disketten- / Speichersymbol und exportieren Sie ihn nach Excel. Für Millionen von Zeilen ist SSRS 2012 erforderlich, das als XLSX gespeichert wird. Leider sind selbst in SSRS 2008 R2 nicht mehr als 64.000 Zeilen zulässig. Planen Sie den Bericht zur Automatisierung.

Referenzen für diese Befehle:

Technet sqlcmd Eintrag

Technet bcp Eintrag

social.msdn sqlcmd tab begrenzter Forumbeitrag

Anti-Schwachkennwörter
quelle
0

Wenn es nur eine einmalige Sache ist.

Führen Sie die Abfrage aus. Klicken Sie im Ergebnisfenster unten rechts auf das leere Quadrat oben links. Ergebnisse speichern unter ... Standard ist eine CSV. Wählen Sie aus, wo Sie die Datei sichern möchten (Netzwerkfreigabe oder lokal).

Zäh
quelle