NOTA:Esta respuesta es para SQL Server. El oracle se agregó una etiqueta a la pregunta después de esta respuesta
Voy a suponer que su tabla tiene una IDENTITY
columna que es también la clave primaria, según principios de buen diseño. Supongamos también que no tener columnas calculadas (o marcas de tiempo o cualquier tipo que requiera más manipulación). Supongamos finalmente que conoce al menos el nombre de esta columna de ID, que es estándar, p. "id
".
Puedes usar esta secuencia:
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;