如何看待在Sybase列的元数据?
-
05-09-2019 - |
题
我有一个同事给我列的列表,但是这些列驻留在DB不同的表。是否有某种在Sybase工具在哪里可以查询列所属的表来?
(我试过谷歌,荷兰国际集团的这种工具,但至今没有运气)
解决方案
syscolumns中保持列元数据。
选择从syscolumns中*其中名称=;
syscolumns中的id列是列的表的ID,在sysobjects;
select b.name as tablename, a.name as columnname
from syscolumns a join systables b on (a.id = b.id)
where b.type='U' and b.name = 'foo';
获取所有列命名为“富”表。类型=“U”它限制用户表。
select b.name as tablename, a.name as columnname
from syscolumns a join systables b on (a.id = b.id)
where b.type='U' and a.name = 'foo';
被所有列命名为 '富'。
ASE的最新版本将使用sysbojects
代替systables
其他提示
我不得不做出一些小的变化,它的工作:
select b.name as tablename,
a.name as columnname
from dbo.syscolumns a
join sysobjects b on a.id = b.id
where b.type='U'
and upper(a.name) like '%FOO%' -- wildcard search for column name
and b.name = 'bar' -- exclude tables
order by b.name
可以找到在任何列中的信息:
SELECT *
FROM sys.syscolumns
如果你想知道一列属于哪个表:
SELECT cname, tname
FROM sys.syscolumns
WHERE tname IN ('col_1', 'col_2')
注:我在Sybase ASA 9测试此
不隶属于 StackOverflow