2017-01-31 15 views
0

テーブルELEM_DUP3のIDを一意の値で更新するクエリを試しましたが、すべてのIDが同じ値で更新されました。更新クエリを使用して列の値をインクリメントする方法

UPDATE DW.ELEM_DUP3 
FROM (SELECT MAX(ID) AS ID 
    FROM DW.ELEM) S 
SET ID = (S.ID + 1) 
Data in table:  After Update: 
ID Name    ID Name 
5 test8    8 test8 
6 test9    8 test9 
7 test10    8 test10 

期待される結果:

ID Name 
8 test8 
9 test9 
10 test10 

は私が間違っているいずれかの助けがもらえますか?

+1

タグを付けてくださいフィールドをインクリメントしていきます – TheGameiswar

+0

これは、SELECT MAX(ID)を使用しているためです。データテーブルのmax(id)が7であるため、常に8が返されます。 – Svekke

+0

WHERE cすべての行は同じ値で更新されます。 –

答えて

1
UPDATE DW.ELEM_DUP3 D 
FROM (SELECT ID AS ID 
FROM DW.ELEM Where ID=D.ID) S 
SET D.ID = (S.ID + 1) 

それはのために働く必要がありますあなたの要求を考えると、これは何をしたいん

0

UPDATE DW.ELEM_DUP3 
SET ID = ID + (SELECT MAX(ID)-MIN(ID)+1 FROM DW.ELEM_DUP3) 

あなたはそれを繰り返し実行することができ、それが

関連する問題