Zum Inhalt springen

MSSQL Datenimport CSV mit einer Bedingung


Empfohlene Beiträge

Geschrieben

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

 

Geschrieben

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.

Geschrieben (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 von RipperFox
Geschrieben

@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.

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...