Oracle
 sql >> Base de données >  >> RDS >> Oracle

Copier une ligne et modifier un petit sous-ensemble de colonnes ?

REMARQUE :Cette réponse concerne SQL Server. L' le tag a été ajouté à la question après cette réponse

Je vais supposer que votre table a un IDENTITY colonne qui est aussi la clé primaire, selon les principes de bonne conception. Supposons également que ce n'est pas avoir des colonnes calculées (ou des horodatages ou tout type qui nécessitera plus de manipulation). Supposons enfin que vous connaissiez au moins le nom de cette colonne ID, qui est standard, par ex. "id ".

Vous pouvez utiliser cette séquence :

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;

Démo SQL Fiddle