我在我的数据库中搜索一个特定的行,并且想知道ibexpert中是否有一个函数来查找一个字段的所有依赖项。
发布于 2019-04-05 14:47:41
在表中选择字段时,单击“字段依赖项”选项卡。

发布于 2019-04-05 12:42:17
我不知道IBExpert,但通常在Firebird中,您可以在系统表RDB$DEPENDENCIES中找到依赖项。它不会准确地告诉您在哪一行代码上使用某个字段,但它将帮助您识别它使用的对象。然后就是检查这个特定对象的源代码,看看它在哪里使用。
表RDB$DEPENDENCIES有以下列(在FireBird2.5中):
RDB$DEPENDENT_NAME -“依赖”(使用依赖项的对象)的名称(如存储过程名称)RDB$DEPENDED_ON_NAME -依赖项的名称(如表名)RDB$FIELD_NAME -依赖项的字段名(例如表列);可以是非字段依赖项的NULL。RDB$DEPENDENT_TYPE -依赖项的类型(例如0=关系(表或视图),可能的值请参见RDB$TYPES with RDB$FIELD_NAME = 'RDB$OBJECT_TYPE )RDB$DEPENDED_ON_TYPE -依赖项的类型(列依赖项类型为0,RDB$FIELD_NAME类型为null,表/视图依赖项类型为0,RDB$FIELD_NAME为null )。例如,可以使用以下查询:
select dep.*, tt.RDB$TYPE_NAME as DEPENDENT_OBJECT_TYPE, dt.RDB$TYPE_NAME as DEPENDED_ON_OBJECT_TYPE
from RDB$DEPENDENCIES dep
inner join RDB$TYPES tt
on tt.RDB$TYPE = dep.RDB$DEPENDENT_TYPE
and tt.RDB$FIELD_NAME = 'RDB$OBJECT_TYPE'
inner join RDB$TYPES dt
on dt.RDB$TYPE = dep.RDB$DEPENDED_ON_TYPE
and dt.RDB$FIELD_NAME = 'RDB$OBJECT_TYPE'https://stackoverflow.com/questions/55512959
复制相似问题