如何在IQ中找出数据类型

时间:2014-10-07 13:18:08

标签: sybase-iq

我想创建一个select语句,向我显示所选列的所有用户表,列,数据类型和数据长度。

我已经在ASE中完成了它,但IQ中的系统表是不同的,我无法加入必要的表来获取我的选择。在ASE中,代码如下所示:

select so.name as 'table name', sc.name as 'column name', st.name as 'data type', sc.length as 'data  length'    
from sysobjects so
inner join syscolumns sc on so.id = sc.id
inner join systypes st on sc.usertype = st.usertype
where so.type = 'U' 

我使用usertype作为连接键来获取我想要的内容,但在智商中,syscolumnsystypes无法像这样加入,任何人都知道我是怎么做的可以完成吗?

1 个答案:

答案 0 :(得分:1)

select
  t.table_name,
  c.column_name,
  d.domain_name,
  c.width,
  c.scale
FROM SYS.SYSTAB t
JOIN SYS.SYSCOLUMN c
  ON t.table_id = c.table_id
join SYS.SYSDOMAIN d
  on d.domain_id = c.domain_id
where t.creator <> 0 --sysobjects type 'S'
and not exists (select * from sys.systab tv 
                where tv.creator in (2, 22) 
                and tv.table_id = t.table_id) --2/22 sysobjects type 'V'