2009-02-25 2 views
11

Я только что загрузил версию разработчика SQL Anywhere. Как я могу получить список таблиц в базе данных, к которой я подключен? Также для конкретной таблицы, как мне получить метаданные для этой таблицы (имена столбцов, типы и т. Д.)?Детали таблицы в SQL Anywhere?

+0

Я получил ответ на часть моего вопроса о деталях таблицы здесь: http://stackoverflow.com/questions/100504/what-is-the-sql-command-to-return-the -field-names-of-a-table Но все же я не знаю, как найти список таблиц. У меня есть идея, хотя, позвольте мне попробовать :) – virtualmic

ответ

11

Я не использовал SQL-Anywhere в течение многих лет, однако следующее заявление должно работать

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

Это списаны непосредственно из an earlier question

1

Предполагая, что Windows: Пуск - Все программы - SQL Anywhere 11 - Sybase Центральные

Затем - Подключите с SQL Anywhere 11 ...

Выберите "имя источника данных ODBC" и р ick «SQL Anywhere 11 Demo»

Нажмите OK, чтобы увидеть древовидную структуру различных объектов в базе данных (таблицы и т. д.).

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

Для конкретной таблицы:

describe TableName 

будет возвращать столбцы таблицы, с указанием типа столбца, будь то обнуляемым и первичный ключ

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 

Это даст список таблиц и пользователей, имеющих доступ к ним.

0

Чтобы получить список всех таблиц, используемых в базе данных:

select * from systable //without 's' 

Чтобы получить список всех столбцов:

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

Это было уже сказано: http://stackoverflow.com/a/682626/334849 – LittleBobbyTables

-1

Чтобы выбрать один детали таблицы

select * from Table_Name; 

Чтобы выбрать две различные таблицы и карты с идентификатором

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

выберите * из user_tables;

desc tablename;

+0

Это недопустимо для SQL Anywhere. –

Смежные вопросы