Sybase ASA数据库和列出类型的列

时间:2014-03-12 12:07:52

标签: sql sybase sybase-asa

如果我在ASA Sybase数据库中使用获取列:

select * from sys.syscolumns where table_id='1';

然后我可以获得creator,table_name,列名,列类型(varchar,int,..)但是没有列id或表id看不到。 如何查询,我可以获得列

creator, tname, cname, table_id, coltype, nulls, width, is_primary_key, default_value, remarks

我测量了,如何获得

select 
    t.creator, //i meaned schema name e.g public
    t.table_name, //the name of table e.g products
    t.table_id, //table's identifier
    c.column_name, //the name of  column, e.g price 
    c.column_type, //e.g varchar(255), integer, ..
    c.nulls, //not null or nulls
    c.width, //255 (varchar(255)), 4 (int(4))
    c.default //default value, the "default" is keyword and gives an error
  from sys.systab t, sys.systabcol c
where t.table_id = c.table_id

1 个答案:

答案 0 :(得分:2)

我认为sys.syscolumns是一个与ASE兼容性相关的视图。您可能想要加入SYSTAB和SYSTABCOL。

select t.creator, t.table_name, t.table_id, c.column_type, c.nulls, c.width, c.default
  from sys.systab t, sys.systabcol c
where t.table_id = c.table_id

您可能还必须引用SYSIDX来获取主键信息。

References to the system tables and their structure can be found in the documentation。在大多数情况下,您可以使用SQLAnywhere v10文档查找有关Sybase ASA的答案。