Progress-OpenEdge 查询以显示 table 的列关系
Progress-OpenEdge query to show Column Relations of the table
我想要一个查询来获取 列关系 或 列 对 table 的引用 或 所有数据库。
就像在MySQL中一样,我们有一个查询
SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE
TABLE_SCHEMA = 'database_name';
那么,Progress OpenEdge 获取列关系的查询是什么。
此外,过程、函数和视图 存储在 ProgressDB 中的什么位置?
查询查看数据库名称列表?
要查找关系、视图或存储过程,您必须查询元模式。 Stefan 的 link 文档 SYSTABLES、SYSCOLUMNS、SYSINDEXES、SYSPROCEDURES 和 SYSVIEWS。这些表格定义了您所要求的内容。
Progress 数据库没有明确存储关系。按照惯例,当表之间存在公共字段名称时,它们是隐含的,但这不会在引擎中创建任何特殊关系。您可以分析上面的表格并做出一些猜测,但最终,您可能需要参考您正在使用的应用程序的文档。
大多数 Progress 数据库都是为 Progress 4gl 应用程序创建的。 SQL 后来出现,主要用于支持第 3 方报告工具。因此,有两个角色 - 4gl 和 sql。他们有许多共同的能力,但也有一些他们不共享的东西。存储过程就是这样的一个特性。您可以在 sql 端创建它们,但事物的 4gl 端不知道它们,并且不会将它们用于强制约束或用于任何其他目的。正如我所提到的,大多数 Progress 数据库都是为支持 4gl 应用程序而创建的,因此拥有任何 sql 个存储过程是非常不寻常的。
(使事情变得更加复杂的是,4gl 引擎中嵌入了一些旧的 sql-89 语法。但这种非常古老的语法实际上只是令牌 sql 支持,不适用于非 4gl 程序。)
我想要一个查询来获取 列关系 或 列 对 table 的引用 或 所有数据库。
就像在MySQL中一样,我们有一个查询
SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = 'database_name';
那么,Progress OpenEdge 获取列关系的查询是什么。
此外,过程、函数和视图 存储在 ProgressDB 中的什么位置?
查询查看数据库名称列表?
要查找关系、视图或存储过程,您必须查询元模式。 Stefan 的 link 文档 SYSTABLES、SYSCOLUMNS、SYSINDEXES、SYSPROCEDURES 和 SYSVIEWS。这些表格定义了您所要求的内容。
Progress 数据库没有明确存储关系。按照惯例,当表之间存在公共字段名称时,它们是隐含的,但这不会在引擎中创建任何特殊关系。您可以分析上面的表格并做出一些猜测,但最终,您可能需要参考您正在使用的应用程序的文档。
大多数 Progress 数据库都是为 Progress 4gl 应用程序创建的。 SQL 后来出现,主要用于支持第 3 方报告工具。因此,有两个角色 - 4gl 和 sql。他们有许多共同的能力,但也有一些他们不共享的东西。存储过程就是这样的一个特性。您可以在 sql 端创建它们,但事物的 4gl 端不知道它们,并且不会将它们用于强制约束或用于任何其他目的。正如我所提到的,大多数 Progress 数据库都是为支持 4gl 应用程序而创建的,因此拥有任何 sql 个存储过程是非常不寻常的。
(使事情变得更加复杂的是,4gl 引擎中嵌入了一些旧的 sql-89 语法。但这种非常古老的语法实际上只是令牌 sql 支持,不适用于非 4gl 程序。)