Sonntag, 7. September 2008

entwickler.com Magazine Konferenzen Akademie Entwickler-Forum Jobbörse Bücher
Software & Support Verlag

Update einer Tabelle mit dem Inhalt einer anderen Tabelle

Frage: Ich habe zwei Tabellen und möchte den Inhalt des Feldes X aus Tabelle 2 in das gleichnahmige Feld x in der Tabelle 1 schreiben. Geht das?

Antwort:Ja, das direkte Umkopieren eines Feldinhalts ist möglich, solange beide Tabellen über den Primärschlüssel synchronisiert werden können. Das folgende Beispiel für den MS SQL Server demonstriert diesen Fall, in der Standarddatenbank tempdb werden dazu zwei Tabellen mit Testdatensätzen angelegt. Die UPDATE-Anweisung verwendet den FROM-Part, um die Quelltabelle festzulegen, aus denen die Daten kopiert werden sollen:

USE tempdb
GO

CREATE TABLE Tabelle1 ( RecID INTEGER NOT NULL IDENTITY PRIMARY KEY, Wert VARCHAR(9) NOT NULL ) GO INSERT INTO Tabelle1 (Wert) VALUES ('Eintrag 1') INSERT INTO Tabelle1 (Wert) VALUES ('Eintrag 2') INSERT INTO Tabelle1 (Wert) VALUES ('Eintrag 3') GO
CREATE TABLE Tabelle2 ( RecID INTEGER NOT NULL IDENTITY PRIMARY KEY, Wert VARCHAR(9) NOT NULL ) GO INSERT INTO Tabelle2 (Wert) VALUES ('-') INSERT INTO Tabelle2 (Wert) VALUES ('-') INSERT INTO Tabelle2 (Wert) VALUES ('-') GO
SELECT * FROM Tabelle1 GO SELECT * FROM Tabelle2 GO
UPDATE Tabelle2 SET Wert = Tabelle1.Wert FROM Tabelle1 WHERE Tabelle2.RecID = Tabelle1.RecID GO
-- Ergebnis prüfen SELECT * FROM Tabelle2 GO






Software & Support Verlag GmbH