2009-02-25 7 views
11

Je viens de télécharger l'édition développeur de SQL Anywhere. Comment puis-je obtenir une liste de tables dans la base de données à laquelle je suis connecté? Aussi pour une table particulière, comment puis-je obtenir les méta-données pour cette table (noms de colonne, types, etc)?Détails de table dans SQL Anywhere?

+0

j'ai eu à répondre à une partie de ma question concernant les détails de la table ici: http://stackoverflow.com/questions/100504/what-is-the-sql-command-to-return-the -field-names-of-a-table Mais je ne sais toujours pas comment trouver la liste des tables. J'ai une idée cependant, laissez-moi essayer :) – virtualmic

Répondre

11

Je ne l'ai pas utilisé SQL Anywhere depuis de nombreuses années mais la déclaration suivante devrait fonctionner

select c.column_name 
from systabcol c 
    key join systab t on t.table_id=c.table_id 
    where t.table_name='tablename' 

Cela a été cribbed directement à partir an earlier question

1

En supposant Windows: Démarrer - Tous les programmes - le manuel SQL Anywhere 11 - Sybase central

Ensuite Connexions - connecter avec SQL Anywhere 11 ...

Sélectionnez "ODBC Data Source Name" et p ick "SQL Anywhere 11 Demo"

Appuyez sur OK pour voir une vue arborescente des différents objets de la base de données (tableaux, etc.).

5
select * from systable // lists all tables 
select * from syscolumn // lists all tables columns 
4

Pour une table particulière:

describe TableName 

retournera si elle est annulable et une clé primaire

1
SELECT b.name + '.' + a.name 
    FROM sysobjects a, sysusers b 
WHERE a.type IN ('U', 'S') 
    AND a.uid = b.uid 
ORDER BY b.name, a.name 

avec indication du type de la colonne, les colonnes de la table, Cela donnera une liste de tables et d'utilisateurs qui y ont accès.

0

système proc, sa_describe_query est très utile

SELECT * FROM sa_describe_query('select * from TableName')

0

Pour obtenir la liste de toutes les tables utilisées dans la base de données:

select * from systable //without 's' 

Pour obtenir la liste de toutes les colonnes:

select * from syscolumn //without 's' 
+0

Cela a déjà été répondu ci-dessus: http://stackoverflow.com/a/682626/334849 – LittleBobbyTables

-1

Pour sélectionner un détail de table

select * from Table_Name; 

Pour sélectionner deux tables différentes et la carte avec identifiant

select * from Table_1 t1,Table2 t2 where t2.id=ti.id; 
-1

select * from user_tables;

desc nom_table;

+0

Cela n'est pas valable pour SQL Anywhere. –

Questions connexes