CATATAN:Jawaban ini untuk SQL Server. Oracle tag ditambahkan ke pertanyaan setelah jawaban ini
Saya akan berasumsi bahwa tabel Anda memiliki IDENTITY
kolom yang juga menjadi kunci utama, sesuai dengan prinsip desain yang baik. Mari kita asumsikan juga tidak telah menghitung kolom (atau stempel waktu atau jenis apa pun yang memerlukan lebih banyak manipulasi). Mari kita asumsikan bahwa Anda tahu setidaknya nama kolom ID ini, yang standar, mis. "id
".
Anda dapat menggunakan urutan ini:
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;