Comment puis-je regarde les métadonnées de colonne dans Sybase?
-
05-09-2019 - |
Question
J'ai une liste de colonnes un collègue a donné à moi, mais ces colonnes résident dans différents tableaux de la DB. Y at-il une sorte d'outil dans Sybase où je peux interroger la table une colonne appartient?
(je l'ai essayé Google-ing pour ce genre d'outil, mais pas de chance jusqu'à présent)
La solution
syscolumns détient les métadonnées de colonne.
select * from syscolumns où name =;
La colonne id dans syscolumns est l'identifiant de la table de la colonne, dans 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';
obtient toutes les colonnes de la table nommée « foo ». Le type = limites 'U' elle à des tables utilisateur.
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';
obtient toutes les colonnes nommées 'foo'.
La version la plus actuelle de l'ASE utilisera sysbojects
au lieu de systables
Autres conseils
Je devais faire quelques petits changements pour que cela fonctionne:
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
Vous pouvez trouver les informations pour une colonne:
SELECT *
FROM sys.syscolumns
Si vous voulez savoir à quelle table une colonne appartient:
SELECT cname, tname
FROM sys.syscolumns
WHERE tname IN ('col_1', 'col_2')
NOTE:. Je tester cela dans Sybase ASA 9