Как посмотреть метаданные столбцов в 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.