284 Stimmen

Wie importiert man eine große MS SQL .sql-Datei?

Ich verwende RedGate SQL Data Compare und habe eine .sql-Datei erstellt, die ich auf meinem lokalen Rechner ausführen kann. Das Problem ist jedoch, dass die Datei über 300 MB groß ist, was bedeutet, dass ich sie nicht kopieren und einfügen kann, weil die Zwischenablage sie nicht verarbeiten kann, und wenn ich versuche, die Datei in SQL Server Management Studio zu öffnen, erhalte ich eine Fehlermeldung, dass die Datei zu groß ist.

Gibt es eine Möglichkeit, eine große .sql-Datei auszuführen? Die Datei enthält im Wesentlichen Daten für zwei neue Tabellen.

3voto

BobbyShaftoe Punkte 27949

Führen Sie es auf der Kommandozeile mit osql aus, siehe hier:

http://metrix.fcny.org/wiki/display/dev/How+zur+Ausführung+eines+.SQL+Skripts+mit+OSQL

3voto

ortegatorres 10 Punkte 39

Ich hoffe, das hilft Ihnen!

sqlcmd -u UserName -s <ServerName\InstanceName> -i U:\<Path>\script.sql

2voto

Bronek Punkte 9976

Ich hatte ein ähnliches Problem. Meine Datei mit Sql-Skript war über 150MB groß (mit fast 900k sehr einfachen INSERT s). Ich habe die von Takuro empfohlene Lösung verwendet (wie die Antwort in dieser Frage), aber ich habe immer noch eine Fehlermeldung erhalten, die besagt, dass nicht genug Arbeitsspeicher vorhanden ist ("Es gibt nicht genügend Systemspeicher im Ressourcenpool 'internal', um diese Abfrage auszuführen").

Was mir geholfen hat, war, dass ich die GO Befehl nach jeweils 50k INSERT s.

(Es geht nicht direkt um die Frage (Dateigröße), aber ich glaube, es löst das Problem, das indirekt mit der großen Größe des SQL-Skripts selbst zusammenhängt. In meinem Fall viele Insert-Befehle)

2voto

Sunset Wind Punkte 11

\==> sqlcmd -S [Servername] -d [Datenbankname] -i [Skriptdateiname] -a 32767

Ich habe erfolgreich mit diesem Befehl mit 365mb sql-Datei getan. diese Syntax läuft in etwa 15 Minuten. es hat mir geholfen, ein Problem zu lösen, für das ich lange Zeit gebraucht habe, um es herauszufinden

1voto

Philippe Grondier Punkte 10636

Ihre Frage ist ganz ähnlich wie diese

Sie können Ihre Datei/Ihr Skript als .txt oder .sql speichern und über Sql Server Management Studio ausführen (ich glaube, das Menü heißt Open/Query, dann führen Sie die Abfrage einfach in der SSMS-Oberfläche aus). Möglicherweise müssen Sie die erste Zeile aktualisieren, in der Sie die Datenbank angeben, die auf Ihrem lokalen Rechner erstellt oder ausgewählt werden soll.

Wenn Sie diesen Datentransfer sehr häufig durchführen müssen, können Sie sich für die Replikation entscheiden. Je nach Bedarf kann auch eine Snapshot-Replikation sinnvoll sein. Wenn Sie die Daten zwischen Ihren beiden Servern synchronisieren müssen, könnten Sie sich für ein komplexeres Modell wie die Merge-Replikation entscheiden.

EDIT: Ich habe nicht bemerkt, dass Sie Probleme mit SSMS im Zusammenhang mit der Dateigröße hatten. Dann können Sie sich für die Befehlszeile entscheiden, wie von anderen vorgeschlagen, oder für die Snapshot-Replikation (auf dem Hauptserver veröffentlichen, auf dem lokalen Server abonnieren, replizieren, dann abbestellen) oder sogar für Backup/Restore

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X