日期:2014-05-17  浏览次数:20921 次

如何给一批表加触发器
处于某种原因,需要对数据库所有用户表加上一个更新触发器。

单个的加时是可以的,但是如何批量的去给这些表加呢,比如通过 select * from cat;得到表名后,如何再批量的给这些表加上触发器呢,

------解决方案--------------------
所有表加触发器,不太好吧,楼主想要完成什么需求?
如果要建,你可以拼接SQL使用动态SQL来实现
1、select table_name from user_tables;
2、针对1步的表拼接建立触发器的SQL;
3、execute immediate 拼接的SQL。
------解决方案--------------------
select 'create or replace trigger trig_'||table_name||' before insert on '||table_name||' for each row declare begin null; end;' from cat;


如果触发器类型统一的话,把null;部分改为你想嵌入的代码。
------解决方案--------------------
存储过程里默认角色权限无效,需要显式授权。


简单的办法,把所有创建触发器的代码放在一个.sql脚本文件里,运行之。
------解决方案--------------------
使用EXCEL表,查出表名,批量写成脚本,统一执行!
------解决方案--------------------
探讨

存储过程里默认角色权限无效,需要显式授权。


简单的办法,把所有创建触发器的代码放在一个.sql脚本文件里,运行之。