Как посмотреть метаданные столбца в Sybase? - PullRequest
7 голосов
/ 07 апреля 2009

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

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

Ответы [ 3 ]

17 голосов
/ 07 апреля 2009

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

выберите * из системных столбцов, где имя =;

Столбец 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'. Type = '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

3 голосов
/ 08 февраля 2012

Я должен был сделать несколько небольших изменений, чтобы он заработал:

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
0 голосов
/ 19 июня 2015

Вы можете найти информацию для любого столбца в:

SELECT * 
  FROM sys.syscolumns

Если вы хотите знать, к какой таблице принадлежит столбец:

SELECT cname, tname 
  FROM sys.syscolumns
 WHERE tname IN ('col_1', 'col_2')

ПРИМЕЧАНИЕ. Я проверяю это в Sybase ASA 9.

...