永发信息网

求创建一个关于禁用/启用触发器的存储过程,

答案:2  悬赏:70  手机版
解决时间 2021-02-21 09:24
要求创建一个参数,
参数状态是‘启用’的话,就把这个数据库里所有表中被禁用的触发器打开,
参数状态是‘禁用’的话,就把这个数据库里所有表中被启用的触发器关闭,
ps:目前已把查询到库中所有表的触发器,新建到了一个表A(表名,触发器名,状态)
最佳答案
有的情况下可能需要临时禁用触发器,比如他引用的数据库对象已经失效,或者需要执行大量的数据操作
此时不希望触发器工作,以避免造成延时等等
ALTER TRIGGER <触发器名> DISABLE; 禁用某个触发器
ALTER TRIGGER <触发器名> ENABLE; 启用某个触发器
ALTER TABLE <表名> DISABLE ALL TRIGGERS; 禁用表上的所有的触发器
ALTER TABLE <表名> ENABLE ALL TRIGGERS; 启用表上的所有的触发器
*/
--创建表和触发器
DROP TABLE TESTLOG;
DROP TRIGGER MYLOGONTRIGGER;
DROP TRIGGER MYLOGOFFTRIGGER;
--创建表TESTLOG
CREATE TABLE TESTLOG(
USERNAME VARCHAr2(100),
EVENTTIME DATE,
全部回答
--禁用脚本 set serveroutput on size 10000 begin for c in (select 'alter table '||table_name||' disable constraint '||constraint_name||' ' as v_sql from user_constraints where constraint_type='r') loop dbms_output.put_line(c.v_sql); begin execute immediate c.v_sql; exception when others then dbms_output.put_line(sqlerrm); end; end loop; for c in (select 'alter table '||tname||' disable all triggers ' as v_sql from tab where tabtype='table') loop dbms_output.put_line(c.v_sql); begin execute immediate c.v_sql; exception when others then dbms_output.put_line(sqlerrm); end; end loop; end; / --启用脚本 set serveroutput on size 10000 begin for c in (select 'alter table '||table_name||' enable constraint '||constraint_name||' ' as v_sql from user_constraints where constraint_type='r') loop dbms_output.put_line(c.v_sql); begin execute immediate c.v_sql; exception when others then dbms_output.put_line(sqlerrm); end; end loop; for c in (select 'alter table '||tname||' enable all triggers ' as v_sql from tab where tabtype='table') loop dbms_output.put_line(c.v_sql); begin execute immediate c.v_sql; exception when others then dbms_output.put_line(sqlerrm); end; end loop; end; /
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
北英城村地址有知道的么?有点事想过去
阻燃型仪表电缆除阻燃特点外,还有()等优点。
丽平口腔在哪里啊,我有事要去这个地方
situation comedy的中文翻译
去泰国免签是什么意思
以下是有关动物生活习性的叙述,正确的是CA.
养殖用牧草种子价格产量多少
进入电脑时会显示家庭组密码,要怎么样把这个
花园路临时停车场电动汽车充电站地址在哪,我
农历19921111是什么星座?
前进装饰材料商行怎么去啊,有知道地址的么
为何1=0.999···?1/3=0.333··· 2/3=0.66
我们是小规模,在国税季报已经申报了,地税是
太原范围内有什么好高中
搭配的意思是什么
推荐资讯
房产可否转到未成年人名下
从泉州中心站要去东湖要坐几路车?去泉州娱乐
哪种白酒味道比较好,更香醇?
【性格决定成败】性格决定成败。对此谈谈你的
尚品滋喜精致火锅怎么去啊,有知道地址的么
在简单木脂素中,连接两分子苯丙素的碳原子位
张翰竟然坐过牢啊
征战者用什么白金徽章
2分之a=3分之b=6分之c,且a+b-c=3,求a(b-c)的
机电一体化有本科吗
【左边 mv】1/2mv^2等号左边是什么动能定理
余额宝是复利计算的吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?