1. ホーム
  2. sql-server

[解決済み] 挿入更新トリガー 挿入か更新かを判断する方法

2022-04-20 15:44:10

質問

テーブル A のカラム (たとえば Col1) に挿入/更新された値と同じ値を持つテーブル B の行をすべて削除する、テーブル A の Insert および Update トリガーを記述する必要があります。更新と挿入の両方のケースを処理できるようにするには、どのように記述すればよいでしょうか。トリガが更新と挿入のどちらで実行されるかは、どのように判断すればよいでしょうか。

どのように解決するのですか?

トリガーは特別な INSERTEDDELETED テーブルを使用して、quot;before" および "after" データを追跡します。したがって、次のようなものを使うことができます。 IF EXISTS (SELECT * FROM DELETED) を使用して、更新を検出します。にしか行がない場合 DELETED には常に行が存在します。 INSERTED .

の中にある "inserted" を探します。 CREATE TRIGGER .

編集, 2011年11月23日

コメント後、この回答は INSERTEDUPDATED をトリガーとする。

当然ながら、DELETEトリガーでは INSERTED ということです。