我想创建一个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
作为连接键来获取我想要的内容,但在智商中,syscolumn
和systypes
无法像这样加入,任何人都知道我是怎么做的可以完成吗?
答案 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'