SQL Statement: Update mit Inner Join und Bedingung

26/08/2008 - 09:00 von Michael A. | Report spam
Hallo,

ich habe zwei Tabellen: Tabelle1 und Tabelle2

Ich möchte nun in der Tabelle1 die Spalte "tab1_nummer" updaten, aber nur,
wenn in Tabelle2 der Wert in der Spalte "tab2_name" = 'Michael' ist.
Verbunden sind die beiden Tabelle über die Spalte "KDNR".

Ich dachte mir, ich mache es so:

UPDATE Tabelle1
INNER JOIN Tabelle2 ON tabelle1.tab1_kdnr = tabelle2.tab2_kdnr
SET tabelle1.tab1_nummer = '00000000000'
where tab2.name = 'Michael'

Doch funktioniert diese Abfrage nicht im MS Query Analyser. Es kommt die
Meldung:

Server: Nachr.-Nr. 156, Schweregrad 15, Status 1, Zeile 15
Falsche Syntax in der Nàhe des INNER-Schlüsselwortes.

Kann mir da einer weiterhelfen? Ich nutze MS SQL Server 2000 Enterprise
 

Lesen sie die antworten

#1 Henry Habermacher
26/08/2008 - 09:14 | Warnen spam
Hallo Michael

Michael A. wrote:
Ich möchte nun in der Tabelle1 die Spalte "tab1_nummer" updaten, aber nur,
wenn in Tabelle2 der Wert in der Spalte "tab2_name" = 'Michael' ist.
Verbunden sind die beiden Tabelle über die Spalte "KDNR".

Ich dachte mir, ich mache es so:

UPDATE Tabelle1
INNER JOIN Tabelle2 ON tabelle1.tab1_kdnr = tabelle2.tab2_kdnr
SET tabelle1.tab1_nummer = '00000000000'
where tab2.name = 'Michael'

Doch funktioniert diese Abfrage nicht im MS Query Analyser. Es kommt die
Meldung:

Server: Nachr.-Nr. 156, Schweregrad 15, Status 1, Zeile 15
Falsche Syntax in der Nàhe des INNER-Schlüsselwortes.

Kann mir da einer weiterhelfen? Ich nutze MS SQL Server 2000 Enterprise




Die Syntax stimmt nicht für den SQL Server (für Access würde diese, wenn ich
mich richtig erinnere, tun).

UPDATE Tabelle1
SET Tabelle1.tab1_nummer = '00000000000'
FROM TAbelle1
INNER JOIN Tabelle2
ON Tabelle1.tab1_kdnr = Tabelle2.tab2_kdnr
WHERE Tabelle2.name = 'Michael'

Die einfachste Methode ist, jeweils ein SELECT Statement mit dem Join zu
schreiben und dieses anschliessend in ein Update Statement umzuwandeln, dann
bekommst Du automatisch die richtige Syntax ;-)

Ansonsten noch eine Bemerkung: Ich gehe davon aus, dass die Feldnamen nicht
der Realitàt ensprechen. Name wàre nàmlich ein àusserst schlecht gewàhlter
Feldname, der in verschiedenen Programmiersprachen als reserviertes Wort
verwendet wird und dann zu Konflikten führen kann.

Gruss
Henry





Microsoft MVP Office Access
Keine E-Mails auf Postings in NGs. Danke.
Access FAQ www.donkarl.com

Ähnliche fragen