|
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
|