SQL Server で SELECTした結果を使って INSERT, UPDATE を行う方法をまとめてみた。
SQL ServerでSELECT結果で挿入 INSERT
SQL ServerでSELECT結果で挿入 INSERTするには、以下のようにします。
1 2 3 4 5 6 7 |
INSERT INTO <テーブル名> (<列名>,<列名>,<列名>) SELECT <列名>,<列名>,<列名> FROM <テーブル名> WHERE <条件> |
SQL ServerでSELECT結果で更新 UPDATE
SQL ServerでSELECT結果で更新 UPDATEするには、以下のようにします。
1 2 3 4 5 |
UPDATE <テーブル名> SET <テーブル名>.<列名> = (select <列名> from <テーブル名> where <条件>) WHERE <条件> |
サブクエリの更新に同じテーブルを使えない
同じテーブルの更新で気を付けないといけないことがあります。
MySQLでは、よくあるエラー。
#1093 - You can't specify target table 'xxxx' for update
リファレンスによると
「サブクエリーの FROM 句と更新のターゲットの両方に同じテーブルを使用することはできません。」
コメント