문제

동료가 나에게 준 열 목록이 있지만이 열은 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에서 이것을 테스트합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top