ooalbert
Goto Top

TSQL - Tabellen Export als Insert Statement

Hallo,

ich möchte ganz gern eine Tabelle aus meiner Datenbank (SQL Server 2008 R2) programatisch exportieren, als Insert Statment. Jetzt hab ich gesehen, das man sowas über einen Assistenten im Management Studio machen kann, jedoch nur manuell. Die Versuche über BCP waren auch nicht sonderlich erfolgreich.

Wie könnte man das galant bewerkstelligen?

Grüße

Content-Key: 311101

Url: https://administrator.de/contentid/311101

Printed on: April 26, 2024 at 02:04 o'clock

Member: sabines
sabines Aug 11, 2016 at 07:54:41 (UTC)
Goto Top
Moin,

auch wenn Deine Frage älter ist, was verstehst Du unter BCP?

Insert fügt Inhalte in eine Tabelle ein.
Du machst das normalerweise mit einem Select into NEUE Tabelle, wobei die sich auch auf einem anderen Server befinden kann (Verbindungsserver einrichten).

Meine Antwort ist eigentlich zu simpel, beantwortet das deine Frage?
Member: ooAlbert
ooAlbert Aug 12, 2016 at 09:05:33 (UTC)
Goto Top
Hi,

BCP steht für Bulk Copy Programm und das ist ein Konsolen Tool des SQL Servers um größere Mengen an Daten zu exportieren oder zu importieren.

Üblicherweise erzeugt man damit eine CSV Datei. In meinem Fall brauch ich aber als Ergebnis eine SQL Datei, welche mit Insert Anweisungen gefüllt ist, damit das Ziel System diese Anweisungen ausführen kann.

Somit steht in der Datei einfach pro Datensatz:
insert into table values ('Value', .... 'Value');
...
insert into t_table values ('Value', .... 'Value');

Das blöde ist jedoch, das ich keine galante Möglichkeit gefunden habe soetwas zu erzeugen, weshalb ich quasi durch Textmanipulation die nötigen Befehlssätze und Steuerzeichen in die Tabelle selbst einfüge und dann einmal via BCP exportiere. Das Ergebnis sieht dann so aus wie oben beschrieben.

Grüße
Member: sabines
sabines Aug 15, 2016 at 06:38:37 (UTC)
Goto Top
Hi,

jetzt habe ich es verstanden, wie das mit MS SQL funktioniert weiß ich leider nicht, ich bin da nicht mehr so im Thema, aber für diese Zwecke habe ich SqlDbxPersonal verwendet, hier machst Du mit einem Rechtsklick auf die gewünschte Tabelle einen select, dann markierst Du die gewünschten Zeilen und wählst aus dem Menü Results Generate und dann INSERT aus, damit kannst Du dann die Tabelle neu aufbauen. Eventuell muss Du hier ein bißchen rumprobieren.

Ich habe eine alte Version (3.60) kann sein, dass es bei neueren Versionen ein bißchen anders aussieht.

Eine andere Möglichkeit wäre, wie oben schon geschrieben, mit Verbindungsservern zu arbeiten und einen select into und hier als den Zielserver anzugeben, das war aber nicht immer performant, wenn die Server nicht gerade im Haus waren.

Gruss