none
Query-Ergebnis in TextFile RRS feed

  • Frage

  • Hallo allerseits,

    ich benötige einmal Hilfe aus dem Forum und würde mich sehr darüber freuen. Folgende Situation:

    Über eine Query wird ein Extrakt aus einer Tabelle auf dem SQL-Server (2005) gezogen.

    Dieses Ergebnis soll als TextFile nach folgendem Muster für einen INSERT auf einer externen Maschine bereitgestellt werden.

    Insert into TestTab (Spalte_1, Spalte_2) values

    (Wert_1, Wert_2),

    (Wert_3, Wert_4)

    Wie kann ich das realisieren?

    Vielen Dank für die Hilfe

    Gruß

    Dienstag, 29. Oktober 2013 09:10

Antworten

  • Hallo Andreas,

    ich war beruflich unterwegs und bin erst heute wieder am Platz. Deshalb die verspätete Rückmeldung. Ich habe zwischenzeitlich herausgefunden, dass mein Anliegen mit einer SQL-Server Version ab 2008 leicht zu lösen ist. Die haben wir noch nicht und so muss ich leider den Vorgang auf einem MySQL-Server abwickeln.

    Trotzdem vielen Dank für deine Hilfe und einen schönen Tag.

    Gruß


    Donnerstag, 7. November 2013 10:00

Alle Antworten

  • Da gibt es viele Möglichkeiten

    man kann soetwas simples direkt mit sqlcmd und dem Parameter -o (Outputdatei) regeln

    http://technet.microsoft.com/de-de/library/ms162773.aspx

    oder auch mit bcp

    http://msdn.microsoft.com/de-de/library/ms162802.aspx

    Außerdem gibts natürlich auch noch den Daten-Export Assistenten, der das Ganze mit SSIS bewerkstelligt


    Andreas Wolter | Microsoft Certified Master SQL Server

    Blog: www.insidesql.org/blogs/andreaswolter
    Web: www.andreas-wolter.com | www.SarpedonQualityLab.com

    Dienstag, 29. Oktober 2013 09:30
  • Hallo Andreas,

    wie ich das Query-Ergebnis in ein TextFile bekomme, ist mir schon klar (mache ich mit BCP). Mir geht es vielmehr darum, wie ich das Ergebnis in die "Vorlage" bekomme, also Spaltenbezeichner in die Insert-Klammern und Werte in die Values-Klammern. Ich habe so etwas noch nicht gemacht und deshalb die vielleicht dumme Frage.

    Gruß

    Dienstag, 29. Oktober 2013 09:55
  • Das habe ich nicht verstanden.

    Jetzt lese ich daraus, das Du einen SCRIPT für den INSERT erzeigen möchtest - nicht einfach nur die Daten exportieren.

    Das ist etwas völlig anderes und geht mit bcp/sqlcmd nicht

    Wie das geht, habe ich in meinem Blog mal beschrieben: http://www.insidesql.org/blogs/andreaswolter/2010/10/scripting-table-data-with-ssms-sql-server


    Andreas Wolter | Microsoft Certified Master SQL Server

    Blog: www.insidesql.org/blogs/andreaswolter
    Web: www.andreas-wolter.com | www.SarpedonQualityLab.com

    Dienstag, 29. Oktober 2013 10:06
  • Hallo Andreas,

    ich war beruflich unterwegs und bin erst heute wieder am Platz. Deshalb die verspätete Rückmeldung. Ich habe zwischenzeitlich herausgefunden, dass mein Anliegen mit einer SQL-Server Version ab 2008 leicht zu lösen ist. Die haben wir noch nicht und so muss ich leider den Vorgang auf einem MySQL-Server abwickeln.

    Trotzdem vielen Dank für deine Hilfe und einen schönen Tag.

    Gruß


    Donnerstag, 7. November 2013 10:00
  • In SSMS ab 2008 gibt es im "Generate Scripts.." Wizard auch die Möglichkeiten für die Daten INSERT Statements generieren zu lassen.

    Bei einfachen Tabellen reicht ein simples SELECT Statement bereist aus, um die Daten als INSERT Statement aufzubereiten. Beispiel mit der System-View sys.objects, die es überall gibt und somit überall nachvollziehbar ist:

    SELECT 'INSERT INTO myTable ([id], [name]) VALUES ('
           + CONVERT(varchar, object_id) + ', ' + QUOTENAME(name, '''') + ')' AS MyInsert
    FROM sys.objects

    Gibt das das hier aus:

    INSERT INTO myTable ([id], [name]) VALUES (4, 'sysrowsetcolumns')
    INSERT INTO myTable ([id], [name]) VALUES (5, 'sysrowsets')
    INSERT INTO myTable ([id], [name]) VALUES (7, 'sysallocunits')
    INSERT INTO myTable ([id], [name]) VALUES (8, 'sysfiles1')
    INSERT INTO myTable ([id], [name]) VALUES (13, 'syshobtcolumns')
    INSERT INTO myTable ([id], [name]) VALUES (15, 'syshobts')
    INSERT INTO myTable ([id], [name]) VALUES (25, 'sysftinds')
    INSERT INTO myTable ([id], [name]) VALUES (26, 'sysserefs')
    INSERT INTO myTable ([id], [name]) VALUES (27, 'sysowners')
    INSERT INTO myTable ([id], [name]) VALUES (29, 'sysprivs')
    INSERT INTO myTable ([id], [name]) VALUES (34, 'sysschobjs')
    INSERT INTO myTable ([id], [name]) VALUES (41, 'syscolpars')
    INSERT INTO myTable ([id], [name]) VALUES (44, 'sysnsobjs')
    INSERT INTO myTable ([id], [name]) VALUES (46, 'syscerts')
    INSERT INTO myTable ([id], [name]) VALUES (49, 'sysxprops')
    INSERT INTO myTable ([id], [name]) VALUES (50, 'sysscalartypes')
    


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Donnerstag, 7. November 2013 10:12