sql >> Database teknologi >  >> RDS >> Oracle

Kopiere række og ændre en lille undergruppe af kolonner?

BEMÆRK:Dette svar er for SQL Server. tag blev tilføjet til spørgsmålet efter dette svar

Jeg vil antage, at din tabel har en IDENTITY kolonne, der også er den primære nøgle, ifølge principper for godt design. Lad os også antage, at det ikke gør det har beregnede kolonner (eller tidsstempler eller enhver type, der kræver mere manipulation). Lad os endelig antage, at du i det mindste kender navnet på denne ID-kolonne, som er standard, f.eks. "id ".

Du kan bruge denne sekvens:

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. SQL - Hvordan finder man det højeste tal i en kolonne?

  2. SQL Server Regulære udtryk i T-SQL

  3. Hvad skal man gøre med nulværdier, når man modellerer og normaliserer?

  4. Hvordan koder man tegn fra Oracle til XML?