catspeake
2022-09-17 15:11:39
Sql代碼 TableA( id, type,--類型 plandate--計劃時間,varchar(10) ) TableB( Fid,--外鍵,和TableA中的ID關聯 realdate--實際日期,varchar(10) ) TableA的記錄會和TableB中的記錄一一對應。當TableB中的字段realdate發生改變時(insert的時候不算),判斷realdate的值是否小于TableA中plandate的的值,如果小于,執行觸發器,將TableA中的type賦值“10”;如果不小于,則不執行觸發器。請教一下如何寫這個語句,剛學習觸發器,希望能回復完整的sql,謝謝!問題補充:自己學著寫了一個,測試沒發現什么問題--創建觸發器Create Trigger t_TableB_bykmd On TableB for Update As if Update(realdate) begin if(select COUNT(*) from TableB a, TableA b,inserted cwhere a.realdate>b.plandate and a.fid=b.idand a.fid=c.fid)=1begin Update br Set br.type='10' From TableA br , Inserted ins Where br.id=ins.fidend end
2 回答
暮色呼如
TA貢獻1853條經驗 獲得超9個贊
create or replace trigger trigger_temp after update
on TableB
as
begin
DECLARE @realdate_old date,@realdate _new date
SELECT @realdate_old=realdate from deleted ----獲取修改前的
SELECT @realdate_new =realdate FROM inserted
if(:@realdate_new< @realdate _old) then
begin
update TableA a set a.type = 10 where a.id = @realdate_new;
end;
end if;
end trigger_temp;
九州編程
TA貢獻1785條經驗 獲得超4個贊
create or replace trigger trigger_temp after update
on TableB
FOR EACH ROW
begin
if(:new.realdate < old.realdate ) then
begin
update TableA a set a.type = 10 where a.id = :new.Fid;
end;
end if;
end trigger_temp;
- 2 回答
- 0 關注
- 160 瀏覽
添加回答
舉報
0/150
提交
取消
