34,576
社区成员
发帖
与我相关
我的任务
分享
表1(csc_hr_trans..OA_ADDFIELDVALUE)结构如下:
表2(csc..PER_ADD_FIELD_VALUE)结构如下:
要求如下:
请问怎么写触发器呢?
CREATE TRIGGER T_UI_ADDFIELDVALUE --创建名为T_UI_ADDFIELDVALUE的触发器
ON csc_hr_trans..OA_ADDFIELDVALUE --在csc_hr_trans..OA_ADDFIELDVALUE表下建立
FOR INSERT --在发生insert时触发
AS
BEGIN
merge csc..PER_ADD_FIELD_VALUE as a1 --准备改的表
inserted as a2 on a2.STAFF_NO = a1.STAFF_NO and a2.FIELD_NAME = a1.FIELD_NAME --依据表
when matched then
update set a1.FIELD_VALUE_CODE = a2.FIELD_VALUE_CODE,a1.MOD_USER = a2.MOD_USER,a1.MOD_DATE = a2.LASTUPDTIME --如果插入的数据满足关联的数据,则更新PER_ADD_FIELD_VALUE各个值
when not matched then
insert (STAFF_NO,FIELD_NAME,FIELD_VALUE_CODE,MOD_USER) VALUES(a2.STAFF_NO,a2.FIELD_NAME,a2.FIELD_VALUE_CODE,MOD_USER); --如果插入的数据不满足关联的数据,则插入PER_ADD_FIELD_VALUE表中
update csc_hr_trans..OA_ADDFIELDVALUE set is_processed = 1 where STAFF_NO = inserted.STAFF_NO and FIELD_NAME = inserted.FIELD_NAME --上述逻辑操作完后更新满足俩条件的is_processed字段为1
end
is_processed 字段,默认值是0;
触发器里处理完之后,update成1