MS SQL Update: Benötige Hilfe
Hi,
bin neu hier und habe ein kleines Problem mit meinem MS SQL (bin kein SQL Profi).
Wir versuchen bei uns in der Firma eine Tabelle mit knapp 12.000 Einträgen zu Updaten.
Wir lassen im Moment eine CSV Datei exportieren von einer anderen Software, diese wird dann in die Tabelle tmp eingelesen.
In der aktiven Calculate Tabelle sind Datensätze die so nicht mehr benutzt werden sollen, diese dürfen wir aber nicht einfach löschen, da sich alte Programme darauf beziehen könnten.
Unser Plan nun:
Die Spalte m_name soll am Anfang mit "U-" (für Ungültig) ergänzt werden.
Mein bisheriger Code:
Dieser Code läuft normal durch bis er bei der letzten Zeile ankommt, dort wirft er den Fehler:
"Meldung 4104, Ebene 16, Status 1, Zeile 45
Der mehrteilige Bezeichner "TEST.dbo.tmp.m_id" konnte nicht gebunden werden."
(In der Datei ist mehr Code enthalten, dieser funktioniert aber bereits)
Über Hilfe würde ich mich sehr freuen!
Mfg,
Fischer-LuM
bin neu hier und habe ein kleines Problem mit meinem MS SQL (bin kein SQL Profi).
Wir versuchen bei uns in der Firma eine Tabelle mit knapp 12.000 Einträgen zu Updaten.
Wir lassen im Moment eine CSV Datei exportieren von einer anderen Software, diese wird dann in die Tabelle tmp eingelesen.
In der aktiven Calculate Tabelle sind Datensätze die so nicht mehr benutzt werden sollen, diese dürfen wir aber nicht einfach löschen, da sich alte Programme darauf beziehen könnten.
Unser Plan nun:
Die Spalte m_name soll am Anfang mit "U-" (für Ungültig) ergänzt werden.
Mein bisheriger Code:
Update TEST.dbo.Calculate_Copy set TEST.dbo.Calculate_Copy.m_name = "U-"+TEST.dbo.Calculate_Copy.m_name
FROM
TEST.dbo.Calculate_Copy
where TEST.dbo.Calculate_Copy.m_id != TEST.dbo.tmp.m_id
;
Dieser Code läuft normal durch bis er bei der letzten Zeile ankommt, dort wirft er den Fehler:
"Meldung 4104, Ebene 16, Status 1, Zeile 45
Der mehrteilige Bezeichner "TEST.dbo.tmp.m_id" konnte nicht gebunden werden."
(In der Datei ist mehr Code enthalten, dieser funktioniert aber bereits)
Über Hilfe würde ich mich sehr freuen!
Mfg,
Fischer-LuM
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 558754
Url: https://administrator.de/forum/ms-sql-update-benoetige-hilfe-558754.html
Ausgedruckt am: 16.05.2025 um 08:05 Uhr
6 Kommentare
Neuester Kommentar
Versuch mal deine Spaltennamen etwas einzukürzen, in etwa so:
Außerdem ist die Tabelle zur Spalte tmp.m_id nicht Bestandteil des Statements, das müsste wohl noch gejoint werden.
Update TEST.dbo.Calculate_Copy set Calculate_Copy.m_name = "U-"+Calculate_Copy.m_name
FROM
TEST.dbo.Calculate_Copy
where Calculate_Copy.m_id != tmp.m_id
;
Hallo Fischer-LuM,
hab Dein Problem erst jetzt gesehen, wo es schon gelöst ist. Trotzdem für Dich zur Info, daß Du mit Deinem ursprünglichen Befehl gar nicht so weit von der Lösung entfernt warst, bzw. in Deiner jetzigen Lösung Deine zwei Fehler im Ursprungsbefehl vermieden hast.
Der erste Fehler war, daß Du die TEST.dbo.tmp.m_id verwendet hast, ohne die Tabelle eingebunden zu haben, das hast Du mit dem "NOT IN (SELECT m_id FROM TEST.dbo.tmp)" gelöst.
Der zweite Fehler waren die doppelten Anführungszeichen um das U-, da gehören einfache hin.
Und weil Du löblicherweise Deine Lösung für andere mit dem Problem hier reingeschrieben hast, hier noch die Lösung mit Deinem ursprünglichen Befehl:
Gruß, Mad Max
hab Dein Problem erst jetzt gesehen, wo es schon gelöst ist. Trotzdem für Dich zur Info, daß Du mit Deinem ursprünglichen Befehl gar nicht so weit von der Lösung entfernt warst, bzw. in Deiner jetzigen Lösung Deine zwei Fehler im Ursprungsbefehl vermieden hast.
Der erste Fehler war, daß Du die TEST.dbo.tmp.m_id verwendet hast, ohne die Tabelle eingebunden zu haben, das hast Du mit dem "NOT IN (SELECT m_id FROM TEST.dbo.tmp)" gelöst.
Der zweite Fehler waren die doppelten Anführungszeichen um das U-, da gehören einfache hin.
Und weil Du löblicherweise Deine Lösung für andere mit dem Problem hier reingeschrieben hast, hier noch die Lösung mit Deinem ursprünglichen Befehl:
Update TEST.dbo.Calculate_Copy set Calculate_Copy.m_name = 'U-'+Calculate_Copy.m_name
FROM
TEST.dbo.Calculate_Copy
where Calculate_Copy.m_id NOT IN (SELECT m_id FROM TEST.dbo.tmp);
Gruß, Mad Max