ホームページ >データベース >mysql チュートリアル >単一のトランザクションで複数の SQL Server テーブルを更新するにはどうすればよいですか?
複数の SQL Server テーブルにわたる同時更新
単一の SQL ステートメント内で複数のテーブルを直接更新することは、SQL Server 2005 ではサポートされていません。ただし、UPDATE ステートメントをトランザクション内にラップすることで、複数のテーブルにわたるアトミックな更新を実現できます。
これを例で説明しましょう。 LastName
列が特定の値と一致する Table1
の WAprrs
と Table2
の id
を更新する必要があるとします。 これは、次のトランザクション ブロックを使用して実現できます:
<code class="language-sql">BEGIN TRANSACTION; UPDATE Table1 SET LastName = 'DR. XXXXXX' FROM Table1 T1 INNER JOIN Table2 T2 ON T1.id = T2.id WHERE T1.id = '011008'; UPDATE Table2 SET WAprrs = 'start,stop' FROM Table1 T1 INNER JOIN Table2 T2 ON T1.id = T2.id WHERE T1.id = '011008'; COMMIT TRANSACTION;</code>
COMMIT TRANSACTION
ステートメントは必須であることを覚えておくことが重要です。 これにより、両方の UPDATE ステートメントが同時に正常に完了するか、両方とも失敗することが保証され、データの整合性が維持され、一方の更新のみが成功した場合に発生する可能性のある不整合が防止されます。 明示的な JOIN
構文を使用することも、暗黙的な結合よりも明確さと効率の点で推奨されます。
以上が単一のトランザクションで複数の SQL Server テーブルを更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。