sql >> Base de Datos >  >> RDS >> Oracle

¿Copiar fila y cambiar un pequeño subconjunto de columnas?

NOTA:Esta respuesta es para SQL Server. El 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;

Demostración de violín SQL