如何获取触发器的列表以及触发器内部使用的所有表的列表。意思是
1)触发器创建的表
2)触发逻辑内部使用的表?
请在oracle以及sql server中提供解决方案?如何使用触发器内部使用的所有表的列表获取触发器的列表
0
A
回答
2
你会使用ALL_TRIGGERS
和ALL_DEPENDENCIES
找到所有的触发器与他们不同的表。这是:DBMS所依赖的所有表。因此,在使用动态SQL的情况下,DBMS无法了解动态查询将包含哪些表格,您将错过这些表格。
select
t.owner || '.' || t.trigger_name as trigger_name,
t.table_owner || '.' || t.table_name as table_name,
(
select
listagg(d.referenced_owner || '.' || d.referenced_name, ', ')
within group (order by d.referenced_owner, d.referenced_name)
from all_dependencies d
where d.owner = t.owner
and d.name = t.trigger_name
and d.type = 'TRIGGER'
and d.referenced_type = 'TABLE'
and not (d.referenced_owner = t.table_owner and d.referenced_name = t.table_name)
) as other_tables
from all_triggers t;
这是甲骨文(我不知道如何同在SQL Server完成的。我想这是非常相似的。SQL Server中,也将有系统表,您可以在这里查到信息)。
1
在Oracle尝试下面的查询,从而获得所需的输出
SELECT TRIGGER_NAME,TABLE_NAME,TRIGGER_TYPE, TRIGGERING_EVENT, LINE, TEXT
FROM USER_TRIGGERS UT, USER_SOURCE US
WHERE UT.TRIGGER_NAME=US.NAME;
相关问题
- 1. AWS如何使用java SDK获取每个dynamodb表的触发器列表
- 2. 如何触发多列表上的触发器?
- 3. 如何获取链接到特定表的所有触发器?
- 4. 如何获取数据库中活动触发器的列表?
- 5. 使用两张表的mysql触发器
- 6. 如何获取SQL服务器触发器中已更新列的列表?
- 7. 如何使用时钟触发器获取电子表格ID?
- 8. 如何禁用所有涉及Oracle中的表的触发器?
- 9. Apex触发器 - 如何使用触发器更新所有案例所有者?
- 10. 如何从IBM Db2 9.7的触发器中获取更新列的列表?
- 11. 访问触发器体内的触发器表
- 12. 自动生成Oracle中所有表的序列和触发器
- 13. 列更新没有使用触发器
- 14. 触发与原表的列
- 15. 使用触发器在其他表
- 16. 日志表使用触发器
- 17. Mysql使用触发器创建表
- 18. 获取触发Oracle触发器的值
- 19. 插入表的触发器
- 20. SQL CLR触发器 - 获取源表
- 21. MySQL触发器:表到表
- 22. 使用MySQL的触发器来记录所有表更改为辅助表
- 23. 如何使用子表格触发器填充父表格值
- 24. 如何使用触发器根据另一个表操作表?
- 25. 触发器按列连接成新表
- 26. 列表框,DataTemplate中和触发器
- 27. 触发器内的'DROP'表 - MySQL
- 28. 如何查看Db上定义的所有触发器的列表?
- 29. 使用触发器维护每日最大值列表
- 30. Postgres与Unaccent自动生成表列,使用触发器?
希望下面的链接将有所帮助。 http://stackoverflow.com/questions/12346914/how-to-find-all-trigger-associated-with-a-table-with-sql-server – Japongskie