sql >> Database >  >> RDS >> Oracle

Rij kopiëren en een kleine subset kolommen wijzigen?

OPMERKING:dit antwoord is voor SQL Server. De tag is toegevoegd aan de vraag na dit antwoord

Ik ga ervan uit dat uw tabel een IDENTITY . heeft kolom die ook de primaire sleutel is, volgens de principes van goed ontwerp. Laten we ook aannemen dat het niet . is hebben berekende kolommen (of tijdstempels of elk type dat meer manipulatie vereist). Laten we ten slotte aannemen dat u op zijn minst de naam van deze ID-kolom kent, die standaard is, b.v. "id ".

U kunt deze reeks gebruiken:

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;

SQL Fiddle-demo



  1. FLOSS UK voorjaarsconferentie

  2. Dezelfde applicatie, verschillende databases:Entity framework 6.X + MySQL + SQL Server

  3. MySQL NIET IN Query veel langzamer na Mysql Upgrade

  4. MySQL, hoe u null-datums invoegt