Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Zeile kopieren und eine kleine Teilmenge von Spalten ändern?

HINWEIS:Diese Antwort gilt für SQL Server. Das -Tag wurde der Frage nach dieser Antwort hinzugefügt

Ich gehe davon aus, dass Ihre Tabelle eine IDENTITY hat Spalte, die auch der Primärschlüssel ist, gemäß den Prinzipien des guten Designs. Nehmen wir außerdem an, dass dies nicht der Fall ist haben berechnete Spalten (oder Zeitstempel oder andere Typen, die mehr Bearbeitung erfordern). Nehmen wir abschließend an, dass Sie zumindest den Namen dieser ID-Spalte kennen, was Standard ist, z. "id ".

Sie können diese Sequenz verwenden:

SELECT * INTO #tmp FROM tbl WHERE id = @copyfrom;
ALTER TABLE #tmp DROP COLUMN id;
UPDATE #tmp SET
   column1 = ...,
   column2 = ...,
   column3 = ...;  --- the subset of columns you want to change
INSERT tbl SELECT * FROM #tmp;

SQL-Fiddle-Demo