CSV in Tabelle einlesen - vorhandene Einträge aktualisieren

Beantwortet CSV in Tabelle einlesen - vorhandene Einträge aktualisieren

  • Donnerstag, 17. November 2011 14:45
     
     

    Hallo,

    ich bin ein Beginner im Bereich SQL und habe die Aufgabe, Daten von einer CSV Datei in einer SQL Tabelle aktualisiert zu halten.

    Zum einlesen der Daten habe ich bereits folgenden Beitrag gefunden:

    http://social.msdn.microsoft.com/Forums/de-CH/sqlserverexpressde/thread/69911e9d-5943-4f31-a71f-357686d3d2b2

    Die Tagen sollen einmal im Tag aktualisiert werden, da die CSV Datei auch nicht öfter aktualisiert wird. Nach ersten Recherchen schaut sqlcmd für mich vielversprechend aus:

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

    Nun habe ich nur noch ein Problem. In meiner CSV Datei habe ich eine Spalte Nummer, diese Nummer gibt es jeweils nur einmal. Ist eine Nummer beim Importieren schon vorhanden möchte ich die Nummer aktualisieren, ist sie nicht vorhanden sollte ein neuer Datensatz angefügt werden. Gibt es dazu eine komfortable Möglichkeit?

    Der für mich momentan leichtere Weg und den ich mit ein bisschen Probieren wahrscheinlich schaffen würde, wäre es einfach alle Daten immer anzufügen wie im Beispiel oben und dann die doppelten Datensätze einfach zu löschen.

    Vielleicht hat jemand eine Idee oder ein ähnliches Problem gehabt?

    Vielen Dank.

    Markus

     

     

Alle Antworten

  • Donnerstag, 17. November 2011 14:59
     
     Beantwortet

    Hallo Dragonalw,

     

    hier empfehle ich, die CSV-Datei zuerst in eine temporäre Tabelle zu importieren und von dort aus über den MERGE-Befehl in die eigentliche Tabelle zu importieren.

    Beim MERGE-Befehl, kannst du sehr einfach "definieren" in welchem Fall ein INSERT, UPDATE oder DELETE gemacht werden soll. (In deinem Fall anhand der eindeutigen Spalte. Ist diese vorhanden: UPDATE. Ist diese nicht vorhanden: INSERT)

     

    Zu temporären Taballen findest du z.B. hier etwas: http://msdn.microsoft.com/de-de/library/ms175010.aspx

    Zu MERGE hier: http://msdn.microsoft.com/de-de/library/bb510625.aspx

     

    Hoffe das bringt dich weiter.

     

    Gruß

    Philipp




  • Montag, 21. November 2011 15:17
    Besitzer
     
     

    Hallo Dragonalw,

    Ich gehe davon aus, dass die Antwort Dir weitergeholfen hat.
    Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.

    Grüße,
    Robert