SQLServer2012を使用しています
と呼ばれるテーブルとAMOUNTS
と呼ばれるテーブルがありますAMOUNTS_HIST
両方のテーブルには同じ列があります。
- 変更日
- 額
- COMPANY_ID
- EXP_ID
- スポット
- UPDATE_DATE[システム日付]
の主キーAMOUNTS
はCOMPANY_IDとEXP_IDです。主キーpfAMOUNTS_HIST
は、COMPANY_ID、EXP_ID、およびCHANGE_DATEです。
テーブルに行を追加するときはいつでも、AMOUNTS
そのコピーをテーブルに作成したいと思いAMOUNTS_HIST
ます。[理論的には、「AMOUNTS」に行が追加されるたびに、COMPANY_ID、EXP_ID、CHANGE_DATEは一意になります。実際には、そうでない場合は、AMOUNTS_HISTの関連する行をオーバーライドする必要があります。以下のコードは、オーバーライドを考慮していません。]
次のようにトリガーを作成しました。
CREATE TRIGGER [MYDB].[update_history] ON [MYDB].[AMOUNTS]
FOR UPDATE
AS
INSERT MYDB.AMOUNTS_HIST (
CHANGE_DATE,
COMPANY_ID,
EXP_ID,
SPOT
UPDATE_DATE
)
SELECT e.CHANGE_DATE,
e.COMPANY_ID,
e.EXP_ID
e.REMARKS,
e.SPOT,
e.UPDATE_DATE
FROM MYDB.AMOUNTS e
JOIN inserted ON inserted.company_id = e.company_id
AND inserted.exp_id=e.exp_id
なぜそれが私のAMOUNTS_HIST
テーブルでまったく何もしないのか理解できません。誰か助けてもらえますか?
ありがとう、