2011-10-18 9 views
0

レコードを更新しています。古いレコードを自動的に非アクティブにするトリガーを作成する必要があります。レコードは同じではない新しいテーブルに更新されます。新しく記録と元のレコードを挿入する間の値が、私は少しこのクエリでEXISTを使用する方法を失った午前のは、col1とcol2の更新時に古いレコードを自動的に非アクティブ化するトリガー

ALTER TRIGGER TR_On_Renewed_Customer 
ON CustomerTable2 
FOR INSERT 
AS 
// psudeo code 
// Deactive the old record in customertable1 
// if match is found between CustomerTable2 and 
// CustomerTable1 based on col1 and col2, then update Active ='No' 

を言わせて、2列によって一致しています。

答えて

0

キーは、Insertedテーブルを使用することです。このテーブルには、トリガーを発生させたINSERT操作の影響を受けた行が含まれています。

UPDATE c1 
    SET Active = 'No' 
    FROM Inserted i 
     INNER JOIN CustomerTable1 c1 
      ON i.col1 = c1.col1 
       AND i.col2 = c1.col2 
+0

私はこのクエリが好きですが、私はExistを使うことができます。これはやや優雅です。答えをありがとう、私はこのクエリを使用します。 –

+0

「よりエレガントな」という意味がわかりませんが、この場合はJOIN操作がうまくいくと思います。 –

関連する問題