Hallo zusammen,
ich hab jetzt schon tagelang gegoogelt, gesucht, probiert und trotzdem klappts nicht. Folgendes Problem. Ziel ist es, in eine bestehende MS SQL 2005 Datenbank (1 Tabelle, ca. 3 Mill. Datensätze, 8 Spalten) täglich ca. 50 Datensätze upzudaten aus einem csv-File. Am Besten per script.
Von den 3 Mill. Datensätzen in der DB sind ca. 100.000 vollständig gefüllt, die restlichen beinhalten nur das Feld "Login" (alle anderen Felder sind NULL). Das csv-File soll nun die bestehenden Datensätze updaten - entweder die geänderten Informationen bei den vorhandenen vollständigen Recordsets oder die fehlenden(neuen) Informationen bei den Recordsets, wo bislang nur die "Login"-Spalte existiert.
Der reine select-Zugriff auf das csv-file funktioniert soweit, nur updates finden nicht statt, da kommt eine Fehlermeldung(siehe unten).
csv und table haben identische Spaltenbezeichnungen, soweit sollte also alles passen.
Hier das update-query:
Fehlermeldung beim Ausführen:
Meldung 207, Ebene 16, Status 1, Zeile 7
Ungültiger Spaltenname 'LOGIN'.
Der Fehler wird durch das LOGIN bei source.LOGIN versursacht, irgendwie kann ich die Spalten in der csv nicht "ansprechen". Weiß irgendjemand vielleicht Abhilfe? Bin für jeden konstruktiven Vorschlag dankbar!
ich hab jetzt schon tagelang gegoogelt, gesucht, probiert und trotzdem klappts nicht. Folgendes Problem. Ziel ist es, in eine bestehende MS SQL 2005 Datenbank (1 Tabelle, ca. 3 Mill. Datensätze, 8 Spalten) täglich ca. 50 Datensätze upzudaten aus einem csv-File. Am Besten per script.
Von den 3 Mill. Datensätzen in der DB sind ca. 100.000 vollständig gefüllt, die restlichen beinhalten nur das Feld "Login" (alle anderen Felder sind NULL). Das csv-File soll nun die bestehenden Datensätze updaten - entweder die geänderten Informationen bei den vorhandenen vollständigen Recordsets oder die fehlenden(neuen) Informationen bei den Recordsets, wo bislang nur die "Login"-Spalte existiert.
Der reine select-Zugriff auf das csv-file funktioniert soweit, nur updates finden nicht statt, da kommt eine Fehlermeldung(siehe unten).
csv und table haben identische Spaltenbezeichnungen, soweit sollte also alles passen.
Hier das update-query:
Code:
USE db_user UPDATE dbo.tb_user SET userno=source.userno,name=source.name,status=source.status FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Text;Database=C:\TNU\import;', 'SELECT * FROM [tbuser.csv]') as source,tb_user L where L.LOGIN=source.LOGIN
Meldung 207, Ebene 16, Status 1, Zeile 7
Ungültiger Spaltenname 'LOGIN'.
Der Fehler wird durch das LOGIN bei source.LOGIN versursacht, irgendwie kann ich die Spalten in der csv nicht "ansprechen". Weiß irgendjemand vielleicht Abhilfe? Bin für jeden konstruktiven Vorschlag dankbar!
Comment