Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

update mehrer Zeilen aus einer Tabelle

Empfohlene Antworten

Veröffentlicht

Hallo,

ich möchte unter SQL Server 2000 ein Update aus einer Tabelle in die andere unter einer bestimmten Bedingung hinbekommen.

Es sollte so ähnlich ausehen:


udate Tabelle1

set (Spalte1, Spalte2, Spalte3, Splate4) =

(select SpalteA, SpalteB, SpalteC, SplateD from Tabelle2)

where Tabelle2.Spalte1 = 'AC'

Die Syntax funktioniert so nicht unter SQL Server.

Nochmal zum Verständniss:

Es sollen alle Zeilen, die in Tabelle2 stehen und Spalte1 ein AC stehen haben in Tabelle1 upgedatet werden. In den Tabellen stehen nahezu identische Werte.

Hat jemand eine Idee, wie man das hinbekommen könnte?

Auch ruhig via T-SQL.

Danke und Gruss

Dietmar

Original geschrieben von Beagol+Sollum


udate Tabelle1

set (Spalte1, Spalte2, Spalte3, Splate4) =

(select SpalteA, SpalteB, SpalteC, SplateD from Tabelle2)

where Tabelle2.Spalte1 = 'AC'

Die Syntax funktioniert so nicht unter SQL Server.
Du mußt für jede Spalte die dazugehörige Spalte der anderen Tabelle setzen:
update Tabelle1 set spalte1=Tabelle2.spalteA, spalte2=Tabelle2.spalteB, usw

  • Autor
Original geschrieben von fireworker

Du mußt für jede Spalte die dazugehörige Spalte der anderen Tabelle setzen:

update Tabelle1 set spalte1=Tabelle2.spalteA, spalte2=Tabelle2.spalteB, usw
Also

update Tabelle1 

set spalte1 = Tabelle2.SpalteA where Tabelle2.SpalteA ='AC'

klappt nicht.

Die Meldung:

Das Spaltenpräfix 'Tabelle2' stimmt mit keinem in der Abfrage verwendeten Tabellen- oder Aliasnamen überein.

Was tun?

set spalte1 = Tabelle2.SpalteA where Tabelle2.SpalteA ='AC'

probiers mit

set Tabelle1.Spalte1 = Tabelle2.SpalteA where Tabelle2.SpalteA ='AC'

manchmal reagieren DBs ein bisserl blöd........ :D

ausserdem hört es sich so an, als ob er Tabelle2 nicht kennt. Schreibfehler??

  • Autor
Original geschrieben von Darth_Zeus

probiers mit

set Tabelle1.Spalte1 = Tabelle2.SpalteA where Tabelle2.SpalteA ='AC'

manchmal reagieren DBs ein bisserl blöd........ :D

ausserdem hört es sich so an, als ob er Tabelle2 nicht kennt. Schreibfehler??

Schom probiert.

Geht nicht.

Schreibfehler kann nicht sein. Ich habs im QA rüberkopiert.

Versuch es mal mit:

UPDATE Tabelle1

SET feld1 = Tabelle2.feld1, feld2 = tabelle2.feld2, ...

FROM Tabelle1 INNER JOIN Tabelle2

ON Tabelle1.wasauchimmer = Tabelle2.wasauchimmer

WHERE Tabelle2.bedingungsfeld = 'XYZ'

Wenn Du keine Verknüpfung zwischen den beiden Tabellen herstellst, kann der Server auch nicht wissen, von welcher Tabelle2 Du da gerade redest...

;)

Gruss,

der Onkel

PS: Dieses Konstrukt funzt auch, wenn Du Tabelle2 als Untermenge definierst, also den INNER JOIN so machst:

UPDATE Tabelle1

SET feld1 = tmp.feld1, feld2 = tmp.feld2, ...

FROM Tabelle1 INNER JOIN

(SELECT wasauchimmer, feld1, feld2, feld3, ... FROM Tabelle2

WHERE Tabelle2.bedingungsfeld = 'XYZ') AS tmp

ON Tabelle1.wasauchimmer = tmp.wasauchimmer

  • Autor
Original geschrieben von HolzOnkel

Wenn Du keine Verknüpfung zwischen den beiden Tabellen herstellst, kann der Server auch nicht wissen, von welcher Tabelle2 Du da gerade redest...

Ja neee is klar!

Heute Montag ??? :confused:

Danke dir!

es müsste auch mit einem

Update tabelle1, tabelle2

Set tabelle1.spalte1=tabelle2spaltex ..... usw

where tabellex.spaltez='AC'

gehen

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.