Как посмотреть метаданные столбцов в Sybase?

У меня есть список столбцов, которые дал мне коллега, но эти столбцы находятся в разных таблицах в БД. Есть ли какой-то инструмент в Sybase, где я могу запросить таблицу, к которой принадлежит столбец?

(Я пробовал Google-ing для такого инструмента, но пока не повезло)

3 ответов


syscolumns содержит метаданные столбца.

выберите * из syscolumns, где name =;

столбец id в syscolumns-это идентификатор таблицы столбца в 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';

получает все столбцы для таблицы с именем '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';

получает все столбцы с именем "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.