SQL Server の SELECT ステートメントを使用したテーブル更新のマスター
SQL Server の INSERT...SELECT
ステートメントを使用すると、別のテーブルのデータを使用して行を簡単に追加できます。 しかし、テーブルの更新にも同様のアプローチを使用できますか? このガイドではその方法を説明します。
メインテーブルにマージしたい、更新された値を含む一時テーブルがあるとします。 一般的な (ただし正しくない) アプローチは次のようになります:
<code class="language-sql">UPDATE Table SET col1, col2 SELECT col1, col2 FROM other_table WHERE sql = 'cool' WHERE Table.id = other_table.id</code>
この構文には欠陥があります。 正しい方法では、結合を活用して効率的かつ正確に更新します。
<code class="language-sql">UPDATE Table_A SET Table_A.col1 = Table_B.col1, Table_A.col2 = Table_B.col2 FROM Some_Table AS Table_A INNER JOIN Other_Table AS Table_B ON Table_A.id = Table_B.id WHERE Table_A.col3 = 'cool'</code>
この洗練されたクエリでは、JOIN
を使用して、一致する Some_Table
値に基づいて Table_A
(Other_Table
というエイリアス) と Table_B
(id
というエイリアス) の行をリンクします。 WHERE
句は、Table_A.col3 = 'cool'
である行のみに更新をフィルターします。 これにより、SELECT
ステートメントで取得したデータを使用してテーブルを更新する際のデータの整合性と精度が保証されます。
以上が選択したステートメントを使用して、SQL Serverのテーブルを更新できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。