7

同僚から提供された列のリストがありますが、これらの列は DB の別のテーブルに存在します。列が属するテーブルを照会できる Sybase のツールはありますか?

(この種のツールを Google で調べてみましたが、今のところうまくいきません)

4

3 に答える 3

18

syscolumnsは列のメタデータを保持します。

select * from syscolumns where 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'という名前のテーブルのすべての列を取得します。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

于 2009-04-06T23:01:37.640 に答える
3

それが機能するために、私はいくつかの小さな変更を加える必要がありました:

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
于 2012-02-07T22:44:01.597 に答える
0

列の情報は次の場所にあります。

SELECT * 
  FROM sys.syscolumns

列が属するテーブルを知りたい場合:

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

注: これは Sybase ASA 9 でテストしています。

于 2015-06-18T22:06:58.830 に答える