3

次の問題があります: 次のような行があります

ID   CODE     NAME            .........
1    h1100h1  Cool example1   .........
2    h654441  Another cool1   .........

古い主キーと制約をすべて保持してそれらを交換したいと思います。もちろん、行を更新することで、これを手動で簡単に解決できます。更新コマンドを手動で実行するだけでなく、この種の問題に対する優れた解決策があるかどうか疑問に思っています。提案や推奨事項を本当に感謝しています。

4

2 に答える 2

6

私はこれをテストしていませんが、うまくいくと思います。id は単一列の主キーであると想定しています。そうでない場合は、このコードを少し調整して PK を処理する必要があります。

UPDATE
     T1
SET
     column_1 = T2.column_1,
     column_2 = T2.column_2,
     ...
FROM
     dbo.My_Table T1
INNER JOIN dbo.My_Table T2 ON
     T2.id =
          CASE
               WHEN T1.id = @id_1 THEN @id_2
               WHEN T1.id = @id_2 THEN @id_1
               ELSE NULL
          END
WHERE
     T1.id IN (@id_1, @id_2)
于 2009-01-27T19:12:49.433 に答える
-1

アップデートで自己参加することが唯一の安全策です

于 2009-01-27T16:37:50.620 に答える