注:この回答はSQLServer用です。 oracle この回答の後にタグが質問に追加されました
テーブルにIDENTITY
があると仮定します 優れた設計の原則によれば、主キーでもある列。また、そうではないと仮定しましょう。 計算された列(またはタイムスタンプまたはより多くの操作を必要とする任意のタイプ)があります。最後に、少なくともこのID列の名前を知っていると仮定しましょう。これは標準です。 "id
"。
次のシーケンスを使用できます:
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;