如何在触发器中调用存储过程
答案:3 悬赏:10 手机版
解决时间 2021-02-07 18:13
- 提问者网友:niaiwoma
- 2021-02-07 05:12
如何在触发器中调用存储过程
最佳答案
- 五星知识达人网友:鱼芗
- 2021-02-07 06:45
在触发器中调用存储过程:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
CREATEtriggermalice
onBBSUser
forupdate
as
if update(receive) --当receive字段发生update事件时触发
begin
updatebbsuser
setreceive_temp=bu.receive_temp+(i.receive-d.receive)
frombbsuser bu,deleted d,inserted i
wherebu.userid=i.userid
declare@tempfloat,@scope float
set@temp=(selectbb.receive_temp frombbsuser bb,deleted d wherebb.userid=d.userid)
set@scope=(selectbb.receive_scope fromBBSUser bb,deleted d wherebb.userid=d.userid)
if @temp<=@scope
updateuserinfo
setstandnumber=bu.standnumber+(i.receive-d.receive)
fromuserinfo bu,deleted d,inserted i
wherebu.userid=d.userid
declare@userint,@com float
select@user=d.userid,@com=us.standnumber
fromUserInfo us,Deleted d,Inserted i
whereus.userid=d.userid
exectimely @user,@com
if @temp>@scope
begin
updateuserinfo
setstandnumber=bu.standnumber+(@scope-d.receive)
fromuserinfo bu,deleted d,inserted i
wherebu.userid=d.userid
updatebbsuser
setreceive_temp=@scope
frombbsuser bu,deleted d
wherebu.userid=d.userid
select@user=d.userid,@com=us.standnumber
fromUserInfo us,Deleted d,Inserted i
whereus.userid=d.userid
exectimely @user,@com
end
end
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
CREATEtriggermalice
onBBSUser
forupdate
as
if update(receive) --当receive字段发生update事件时触发
begin
updatebbsuser
setreceive_temp=bu.receive_temp+(i.receive-d.receive)
frombbsuser bu,deleted d,inserted i
wherebu.userid=i.userid
declare@tempfloat,@scope float
set@temp=(selectbb.receive_temp frombbsuser bb,deleted d wherebb.userid=d.userid)
set@scope=(selectbb.receive_scope fromBBSUser bb,deleted d wherebb.userid=d.userid)
if @temp<=@scope
updateuserinfo
setstandnumber=bu.standnumber+(i.receive-d.receive)
fromuserinfo bu,deleted d,inserted i
wherebu.userid=d.userid
declare@userint,@com float
select@user=d.userid,@com=us.standnumber
fromUserInfo us,Deleted d,Inserted i
whereus.userid=d.userid
exectimely @user,@com
if @temp>@scope
begin
updateuserinfo
setstandnumber=bu.standnumber+(@scope-d.receive)
fromuserinfo bu,deleted d,inserted i
wherebu.userid=d.userid
updatebbsuser
setreceive_temp=@scope
frombbsuser bu,deleted d
wherebu.userid=d.userid
select@user=d.userid,@com=us.standnumber
fromUserInfo us,Deleted d,Inserted i
whereus.userid=d.userid
exectimely @user,@com
end
end
全部回答
- 1楼网友:千杯敬自由
- 2021-02-07 08:35
直接调用
CREATE OR REPLACE TRIGGER TRU_WORKSAL
AFTER UPDATE OR DELETE
ON WORKSAL
FOR EACH ROW
DECLARE CALC DATE;
BEGIN
pad_amt(:new.salmonth,:new.staff);
pad_sal(:new.salmonth,:new.staff);
END;
/
- 2楼网友:煞尾
- 2021-02-07 07:07
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯