UWAGA:Ta odpowiedź dotyczy programu SQL Server. oracle tag został dodany do pytania po tej odpowiedzi
Zakładam, że Twoja tabela ma IDENTITY
kolumna będąca jednocześnie kluczem podstawowym, zgodnie z zasadami dobrego projektowania. Załóżmy również, że nie mają obliczone kolumny (lub sygnatury czasowe lub dowolny typ, który będzie wymagał większej manipulacji). Załóżmy w końcu, że znasz przynajmniej nazwę tej kolumny ID, co jest standardowe, np. "id
".
Możesz użyć tej sekwencji:
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;