Laden...

MSSQL mit 80 MB-Script initialisieren

Erstellt von Levion vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.869 Views
Levion Themenstarter:in
114 Beiträge seit 2009
vor 13 Jahren
MSSQL mit 80 MB-Script initialisieren

Hallo Ihr,

ich versuche gerade eine Tabelle von Datenbank A nach Datenbank B zu schaufeln. Ich hab mir per Tool (Powerbuilder) schonmal aus Datenbank A die Tabelle exportiert (INSERT-Statements). Wenn ich aber anschließend die Datei per sqlcmd in Datenbank B wieder einlese bekomme ich folgenden Fehler:

Meldung '701', Ebene '17', Status '123', Server '<meinServer>', Zeile 20350
'Es ist nicht genügend Systemarbeitsspeicher im Ressourcenpool 'default' vorhand
en, um diese Abfrage auszuführen.'

Gibt es einen anderen Weg die Daten (speicherschonender) einzulesen?

Grüße

1.378 Beiträge seit 2006
vor 13 Jahren

Schau dir mal Bulk Insert an.

Lg XXX

C
112 Beiträge seit 2009
vor 13 Jahren

Hi,
wenn beide Datenbanken auf dem Selben Datenbank-Server liegen, geht auch sowas:
insert into DatenbankA.Tabelle (SELECT * from DatenbankB.tabelle)

Grüße

Christian

1.378 Beiträge seit 2006
vor 13 Jahren

Guter Hinweis. So hab ich früher auch komplexe Daten deployed: Falls die Datenbanken auf unterschiedlichen System liegen, einfach ein Backup von der Quelldatenbank machen, am Zielserver einspielen und schon kann man bequem mit Selects und Inserts arbeiten.

Lg XXX

Levion Themenstarter:in
114 Beiträge seit 2009
vor 13 Jahren

Die Datenbanken liegen leider auf verschiedenen Servern und Netzwerken. Aber der Bulk-Insert-Tipp war gut. Hier meine Lösung mit bcp.


bcp <datenbank>.dbo.<tabelle> format nul -U sa -P pwd -N -f tabelle.fmt
bcp <datenbank>.dbo.<tabelle> out test.dat -f tabelle.fmt -U sa -P pwd
bcp <datenbank>.dbo.<tabelle> in test.dat -f tabelle.fmt -U sa -P pwd

Und SCHNELL ist das ganze auch noch 😄

Ich danke euch.