我有一个 Sybase Anywhere 数据库,其中有一个表(比如表 A)。我需要检查此表中列的顺序。假设表 A. 中有 3 列
Col_1
,Col_2
并且Col_3
如何检查是否Col_2
介于Col_1
and之间Col_3
?基本上检查表中列的顺序(如果表中有超过 3 列)。
我有一个 Sybase Anywhere 数据库,其中有一个表(比如表 A)。我需要检查此表中列的顺序。假设表 A. 中有 3 列
Col_1
,Col_2
并且Col_3
如何检查是否Col_2
介于Col_1
and之间Col_3
?基本上检查表中列的顺序(如果表中有超过 3 列)。
您应该查询代表数据库结构的数据库系统表。在 SQL Anywhere 8(我知道的最新版本)中,有趣的表是 SYS.SYSTABLE 和 SYS.SYSCOLUMN。
此查询返回按“逻辑”顺序排序的表的所有列:
SELECT c.column_id, c.column_name
FROM sys.systable AS t
INNER JOIN
sys.syscolumn AS c
ON c.table_id = t.table_id
WHERE t.table_name = 'TableA'
ORDER BY c.column_id;
您可以查询 Col_2 的column_id并检查它是否在Col_1和Col_2的 column_ids 之间。