以下のサンプルフォーマットテーブル構造があります。
CUSTOMERテーブル
CUSTID INT,//PRIMARY KEY
CUSTDATA VARCHAR
EMPLOYEEテーブル
EMPID INT,//PRIMARY KEY
EMPDATA VARCHAR
ITEMテーブル
ITEMID INT,//PRIMARY KEY
CUSTID INT,//REFERENCE KEY
ITEMTYPE INT //1 FOR CUSTOMER AND 2 FOR EMPLOYEE
EMPID INT
MERGEDATAテーブル
MERGEID INT,
CUSTDATA VARCHAR,
EMPDATA VARCHAR
ACTION VARCHAR
上記には4つのテーブル(CUSTOMER, EMPLOYEE, ITEM
と)があり、イベントのテーブルにMERGEDATA
SQL Serverトリガーを作成したいので、テーブルでアクティビティが実行されるたびに、テーブルで実行されたアクションがテーブルに入力されます。ITEM
INSERT/UPDATE/DELETE
ITEM
MERGEDATA
ITEM
したがって、新しい行がテーブルに挿入されると、またはエントリに応じてITEM
新しいエントリがテーブルに挿入されます。たとえば、顧客からのエントリがある場合は、テーブルとテーブルに次のように1つのエントリが追加されます。MERGEDATA
CUSTOMER
EMPLOYEE
ITEM
CUSTOMER
CUSTOMERテーブル
123, TESTCUSTOMER
ITEMテーブル
1, 123, 1, 0
Employeeテーブルについても同じことが言えますが、ITEM
テーブルの行はのようになります1, 456, 0, 2
。
ここで、トリガーのif条件に、CUSTOMERテーブルからのエントリがある場合を記述したいと思います。
IF (ITEMTYPE == 1)
//Entry in MERGEDATA will as below
MERGEDATAテーブル
1, 123, 0, ACTION (will depend on type of trigger event trigger if INSERT(ACTION = INS), for update (UPDATE = UPD) etc
要するに、私は引き金で物事の下を見ています:
- トリガーにIF条件を書き込む方法
- トリガーで他のテーブルから内部結合を行う方法
提案してください!!
ありがとう