2017-07-26 6 views
-3

Ich habe Tabelle ein, Tabelle b mit denselben Spalten .I b den Wert in der Tabelle ersetzen möchten mit Tabelle einen Wert ohne Update Schlüsselwort.Wie Tabelle zu aktualisieren, ohne Aktualisierung Schlüsselwort

+0

Mögliches Duplikat von [Wie kann ich eine UPDATE-Anweisung mit JOIN in SQL ausführen?] (Https://stackoverflow.com/questions/1293330/how-can-i-do-an-update-statement-with-join -in-sql) –

+0

Dies ist entweder Hausaufgabe oder eine fehlgeleitete Frage, aber auf jeden Fall denke ich, dass Ihre einzige Option wäre, diese Datensätze aus der Zieltabelle zu löschen und dann eine Einfügung zu machen; aber Sie würden dies in der Praxis wegen Datenkonsistenzproblemen nie tun. –

+1

Mögliche Duplikat https://stackoverflow.com/questions/4646327/update-table-without-using-update-statement – Vikrant

Antwort

1

Die Frage etwas ausführlicher auf die Tabellenstruktur verwenden könnte, was genau zu tun Sie versuchen, und was von der Verwendung UPDATE schließt man, aber hier geht:

CREATE TABLE #tempTable (col1, col2, col3, ...) 

INSERT INTO #tempTable 
SELECT 
b.col1 
, b.col2 
, a.col3 
, ... 
FROM a 
INNER JOIN b 
ON a.col1 = b.col1 

DELETE FROM b 
WHERE col1 IN (SELECT col1 FROM a) 

INSERT INTO b 
SELECT 
col1 
, col2 
, col3 
, ... 
FROM #TempTable 

Was natürlich macht die eine fette Annahme, dass Tabelle a und b einen Primärschlüssel gemeinsam haben und dass Tabelle b keine Einschränkung hat, die das Löschen übereinstimmender Zeilen verhindern würde. Bitte geben Sie einige weitere Details an und ich werde meine Antwort entsprechend aktualisieren.

Verwandte Themen