Sybase의 열 메타 데이터를 어떻게 보나요?
-
05-09-2019 - |
문제
동료가 나에게 준 열 목록이 있지만이 열은 DB의 다른 테이블에 있습니다. Sybase에는 열이 속한 테이블을 쿼리 할 수있는 도구가 있습니까?
(나는 이런 종류의 도구를 위해 Google-ing을 시도했지만 지금까지는 운이 없습니다)
해결책
Syscolumns는 열 메타 데이터를 보유합니다.
syscolumns에서 * name =;
syscolumns의 ID 열은 SysObjects의 열 표의 ID입니다.
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에서 이것을 테스트합니다.
제휴하지 않습니다 StackOverflow