OBS:Det här svaret är för SQL Server. oraklet taggen lades till i frågan efter detta svar
Jag kommer att anta att ditt bord har en IDENTITY
kolumn som också är den primära nyckeln, enligt principerna för god design. Låt oss också anta att det inte gör det har beräknade kolumner (eller tidsstämplar eller någon typ som kräver mer manipulation). Låt oss slutligen anta att du åtminstone känner till namnet på denna ID-kolumn, som är standard, t.ex. "id
".
Du kan använda denna sekvens:
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;