我有一个Sybase Anywhere数据库,其中有一个表(比如表A)。我需要检查此表中列的顺序。假设表A中有3列。
Col_1
,Col_2
和Col_3
如何检查Col_2
和Col_1
之间是否有Col_3
?基本上检查表中列的排序(如果表中有超过3列)。
答案 0 :(得分:0)
您应该查询表示数据库结构的数据库的系统表。在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之间。