どのように私は、Sybaseの列メタデータを見ますか?
-
05-09-2019 - |
質問
私は同僚が私に与えられた列のリストを持っているが、これらの列は、DB内の別のテーブルに存在します。私は、列が属するテーブルを照会することができSybaseの中のツールのいくつかの種類がありますか?
(私はツールのこの種のためにGoogleが-INGの試みたが、きたこれまでのところ運)
解決
SYSCOLUMNSは、列のメタデータを保持します。
のsyscolumnsから選択*どこ名=;
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