在我的数据库中有很多序列,触发器和表格。每次哪个表与哪个触发器(和序列)相关联时,我都感到困惑。如何在单个查询中查看这些列表?
答案 0 :(得分:1)
在sql server中,您可以使用sys.triggers和sys.tables,例如
select ta.name AS 'TableName', tg.name 'TriggerName' from sys.triggers tg
INNER JOIN sys.tables ta ON tg.parent_id = ta.object_id
答案 1 :(得分:0)
您可以从依赖表中获取此详细信息。
select * from user_dependencies where (referenced_type like 'TRIGGER' OR
referenced_type = 'SEQUENCE') and type = 'TABLE';
答案 2 :(得分:0)
在oracle中,您无法找到在哪个表上使用哪个序列,它在表级别上没有关联。为此,您需要找到代码,并搜索使用它的序列,可能是在插入触发器之前或PL / SQL代码中使用它。
对于触发器,您可以看到数据字典视图
select table_name,
trigger_name as object_name,
'TRIGGER' object_type
from ALL_TRIGGERS
修改强> 我找到序列的方法是
答案 3 :(得分:0)
您可以使用以下语句找到触发器和序列
select
table_name, trigger_name, referenced_name as sequence_name
from
all_triggers
join all_dependencies
on name = trigger_name and referenced_type = 'SEQUENCE'
;