naked Geschrieben 16. Oktober 2018 Teilen Geschrieben 16. Oktober 2018 Hallo zusammen, mein Ziel ist es, Datensätze in einer MSSQL Datenbank mit Daten ,einer CSV Datei, zu aktualisieren. Es befindet sich aber nicht zu jedem Datensatz eine Aktualisierung in der CSV Datei, sodass nur die Datensätze aktualisiert werden sollen, zu denen auch ein neuer Wert vorliegt. Die CSV Datei beinhaltet ca 6000 Datensätze Folgendes exemplarisches Datenmodel liegt vor: tblartikel (ArtikelID, Name, Bezeichnung) tblpreis(PreisID, ArtikelID ,PreisEK , PreisVK) Beide Tabellen sind mit Daten gefüllt. Jetzt habe ich eine CSV Datei, welche neue Bezeichnungen und neue Preise für einen Teil der vorhandenen Artikel, beinhaltet. Ich weiß nicht genau wie ich hier vorgehen soll. Gebraucht wird ein Script?, welches anhand des ArtikelID Eintrages in der CSV Datei den Datensatz identifiziert und ein UPDATE der Identifizierten Datensätze in beiden Tabellen vornimmt. In welcher Umgebung lässt sich so etwas realisieren? Liege ich mit der Vorgehensweise richtig oder ist ein anderer Weg zielführender? Eventuell hat ja jemand einen Rat für mich? Ich bedanke mich schon einmal für das bis hier lesen. Viele Grüße naked Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
arlegermi Geschrieben 16. Oktober 2018 Teilen Geschrieben 16. Oktober 2018 Du kannst die CSV-Datei einfach in eine temporäre Tabelle importieren und von da aus dann das Update machen. Klar lässt sich das auch mit Python, PowerShell, ... lösen - aber wenn du die Datenbank schon hast, musst du ja kein zweites Tool nehmen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
RipperFox Geschrieben 16. Oktober 2018 Teilen Geschrieben 16. Oktober 2018 (bearbeitet) @arlegermis Vorschlag dürfte der schnellste sein (BULK INSERT ist halt flott) - man kann auch OPENROWSET nutzen - statt CSV bekommt man damit auch Excel, Access, etc. eingelesen inkl. Selektion der benötigten Spalten, Joins, WHERE-Klausel, uvm. Siehe https://docs.microsoft.com/de-de/sql/t-sql/functions/openrowset-transact-sql?view=sql-server-2017 Bearbeitet 16. Oktober 2018 von RipperFox Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Enno Geschrieben 16. Oktober 2018 Teilen Geschrieben 16. Oktober 2018 @alergermi s Vorschlag ist auch Best Practise laut MS. wenn du mit einer CSV Daten aktualisieren willst, diese bitte vorher immer in eine TEMP (oder auch Staging) Tabelle einlesen und von dort aus das Update machen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.