私は周りを見回しましたが、これに対する答えを見つけることができないようですが、私がそれを見落としてしまった場合、私にそれをまっすぐに指摘してください。SQL - 更新はテーブル上でどのような順序で行われますか?
テーブルを更新するクエリがあります。更新は、表の順序に依存します。
SQLの更新ステートメントは、行単位でテーブルをまっすぐに処理しますか? Updateステートメントは、テーブルから直接、または最初に実行されたテーブルの「キャッシュされた選択」から、各行を参照します。テーブルの下にカスケードするデータがあり、正しく動作するかどうかはわかりません。
この更新プログラムを実行するには、Update
- From
ステートメントを使用します。このステートメントでは、テーブルが別のテーブルに結合されてから元のテーブルに戻されます。 order by
ステートメントは、更新が行われる前にデータを注文するのか、それとも何か他のことをしますか?
私はSQL Server 2008 r2を使用しています。
更新:これは私がhereに質問した別の質問との関係です。
Id1 Id2
-----------
100 50
120 70
70 50
34 20
50 40
40 10
以上が効果的に上記の減少である以下のデータに更新し、更新を行いますので、全体的に、Id1のから、Id2との情報を更新する必要があります: 更新は次のようになり、そのデータ上で動作します:
Id1 Id2
-----------
100 10
120 10
34 20
私はそれを見て、それがDESCで上から下に動作するかどうか、ちょっと、更新が注文誰に起こると通じて頂きますようにこれをやって心配する必要はありません」、想定していました。しかし明らかにそれは正しくありません。
をあなたは思い出させた後、「*テーブルの順序が*」 –
確かに、私は(それを知っていますかようなものはありません私!)、私は何を頼んでいると思う私は更新プログラムのために何らかの種類の順序を保証することができますか? –
SQL Management Studioで実行計画を使用して、クエリの実行方法と順序を確認できませんか。 –