是否可以搜索字段的所有依赖项
Is it possible to search for all dependencies of a field
我正在我的数据库中搜索特定的行,想知道 ibexpert 中是否有一个函数来查找字段的所有依赖项。
我不知道 IBExpert,但一般在 Firebird 中,您可以在系统中找到依赖项 table RDB$DEPENDENCIES
。它不会准确地告诉您在哪一行代码中使用了某个字段,但它会帮助您识别它在哪个对象中使用。然后检查该特定对象的源代码以查看它的使用位置。
table RDB$DEPENDENCIES
有以下列(在 Firebird 2.5 中):
RDB$DEPENDENT_NAME
- 'dependent'(使用依赖项的对象)的名称,例如存储过程名称
RDB$DEPENDED_ON_NAME
- 依赖项的名称(例如table名称)
RDB$FIELD_NAME
- 依赖项的字段名称(例如 table 列);可以 NULL
对于非字段依赖性
RDB$DEPENDENT_TYPE
- 依赖类型(例如 0 = 关系(table 或视图),请参阅 RDB$TYPES
和 RDB$FIELD_NAME = 'RDB$OBJECT_TYPE
了解可能的值)
RDB$DEPENDED_ON_TYPE
- 依赖项的类型(列依赖项的类型为 0 且 RDB$FIELD_NAME
不为空,table/view 依赖项的类型为 0 且 RDB$FIELD_NAME
为空。
例如,您可以使用以下查询:
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'
在 table 中选择字段后,单击 "Field dependencies" 选项卡。
我正在我的数据库中搜索特定的行,想知道 ibexpert 中是否有一个函数来查找字段的所有依赖项。
我不知道 IBExpert,但一般在 Firebird 中,您可以在系统中找到依赖项 table RDB$DEPENDENCIES
。它不会准确地告诉您在哪一行代码中使用了某个字段,但它会帮助您识别它在哪个对象中使用。然后检查该特定对象的源代码以查看它的使用位置。
table RDB$DEPENDENCIES
有以下列(在 Firebird 2.5 中):
RDB$DEPENDENT_NAME
- 'dependent'(使用依赖项的对象)的名称,例如存储过程名称RDB$DEPENDED_ON_NAME
- 依赖项的名称(例如table名称)RDB$FIELD_NAME
- 依赖项的字段名称(例如 table 列);可以NULL
对于非字段依赖性RDB$DEPENDENT_TYPE
- 依赖类型(例如 0 = 关系(table 或视图),请参阅RDB$TYPES
和RDB$FIELD_NAME = 'RDB$OBJECT_TYPE
了解可能的值)RDB$DEPENDED_ON_TYPE
- 依赖项的类型(列依赖项的类型为 0 且RDB$FIELD_NAME
不为空,table/view 依赖项的类型为 0 且RDB$FIELD_NAME
为空。
例如,您可以使用以下查询:
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'
在 table 中选择字段后,单击 "Field dependencies" 选项卡。