わかりました、質問が明確ではなかったと思います。ここで、これを別の方法で書き直します。
2 つのテーブルを作成するとします。
table1(c1 int PRIMARY KEY)
table2(table1c11 int)
table1
とtable2
ieの間には関係があります。table1.c1=table2.table1c11
そして、次のステートメントをtable1
andで実行しますtable2
insert into table1(c1)
values('a'),('b'),('c'),('d'),('e')
insert into table2(table1c11)
values('a'),('a'),('b'),('d')
そして今、私が達成したいのは、対応するデータの値を更新すると、c1
自動的table1
にtable2
変更されるということです。このためには、table1
とtable2
の関係で制約を作成し、 を適用する必要がありますCASCADE UPDATE
。
そのため、後で新しい SQL 更新ステートメントを適用しますtable1
。
Update table1 set c1=c1+'updated'
次に、 のデータtable2
も変更されます。しかし、 を介して同じ機能を実現したい場合はINSTEAD OF UPDATE TRIGGER
、 update トリガーの代わりに を記述する必要があり、その中に 2 つのマジック テーブルINSERTED
とを使用してそれを処理する必要がありDELETED
ます。
しかし、要点は、この場合、1 つの列しか存在せずtable1
、同じ列を更新しているので、挿入された行と削除された行をどのようにマップできるかということです。CASCADing を使用すると、SQL Server でも同じことが行われます。
そのため、テーブルの主キー データが変更された場合に、SQL Server がバッチ更新をどのように処理するかという疑問が生じます。