テーブルBigTableとテーブルLittleTableがあります。一部のレコードのコピーをBigTableからLittleTableに移動してから、(これらのレコードの場合)BigTable.ExportedFlagをTに設定します(レコードのコピーがリトルテーブルに移動されたことを示します)。
1つのステートメントでこれを行う方法はありますか?
私は次の取引を行うことができることを知っています:
- where句に基づいて大きなテーブルからレコードを移動します
- これと同じwhere句に基づいてTにエクスポートされたビッグテーブル設定を更新します。
また、 MERGEステートメントも調べましたが、これは正しくないようです。小さなテーブルの値を変更したくないので、レコードを小さなテーブルに移動するだけです。
updateステートメントの後にOUTPUT句を調べましたが、有用な例が見つかりません。PinalDaveがInserted.ID, Inserted.TEXTVal, Deleted.ID, Deleted.TEXTVal
の代わりにを使用している理由がわかりませんUpdated.TextVal
。更新は挿入または削除と見なされますか?
この投稿を見つけましたTSQL:UPDATE with INSERT INTO SELECT FROM "AFAIK、1つのSQLステートメントで2つの異なるテーブルを更新することはできません。"
これを行うための明確な単一のステートメントはありますか?正しく、保守可能なSQLステートメントを探しています。1つのトランザクションで2つのステートメントをラップする必要がありますか?