NOTA:questa risposta è per SQL Server. L'oracle tag è stato aggiunto alla domanda dopo questa risposta
Presumo che la tua tabella abbia un IDENTITY
colonna che è anche la chiave primaria, secondo i principi del buon design. Supponiamo inoltre che non lo faccia hanno colonne calcolate (o timestamp o qualsiasi tipo che richiederà più manipolazioni). Assumiamo infine che tu conosca almeno il nome di questa colonna ID, che è standard, ad es. "id
".
Puoi usare questa sequenza:
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;