Перечисление всех таблиц в базе данных - PullRequest
5 голосов
/ 10 мая 2009

Существует ли команда SQL, которая выведет список всех таблиц в базе данных и которая не зависит от поставщика (работает на MSSQLServer, Oracle, MySQL)?

Ответы [ 4 ]

15 голосов
/ 10 мая 2009

Ближайший вариант - запросить у INFORMATION_SCHEMA таблицы.

SELECT *
FROM INFORMATION_SCHEMA.Tables
WHERE table_schema = 'mydatabase';

INFORMATION_SCHEMA является частью стандартного SQL, но не все поставщики поддерживают его. Насколько я знаю, единственные поставщики СУБД, которые поддерживают это:

База данных некоторых брендов, например Oracle, IBM DB2, Firebird, Derby и т. Д. Имеют похожие представления «каталога», которые предоставляют вам интерфейс для запроса метаданных в системе. Но имена представлений, содержащиеся в них столбцы и их отношения не соответствуют стандарту ANSI SQL для INFORMATION_SCHEMA. Другими словами, похожая информация доступна, но запрос, который вы бы использовали для получения этой информации, отличается.

(сноска: представления каталога в IBM DB2 UDB для System i отличаются от представлений каталога в IBM DB2 UDB для Windows / * NIX - так много для Universal в UDB!)

Некоторые другие бренды (например, SQLite) вообще не предлагают какого-либо запрашиваемого интерфейса для метаданных.

5 голосов
/ 10 мая 2009

Нет. Все они любят делать это по-своему.

1 голос
/ 10 мая 2009

Если вы согласны с использованием не-SQL подхода и , у вас есть драйвер ODBC для базы данных и , он реализует точку входа SQLTables, вы возможно может получить информацию, которую вы хотите!

pjjH

подробностей об API по адресу: http://msdn.microsoft.com/en-us/library/ms711831.aspx

1 голос
/ 10 мая 2009

Нет, стандарт SQL не ограничивает, где перечислены имена таблиц (если вообще), поэтому вам придется выполнять разные операторы (обычно SELECT операторы в таблицах с особыми именами) в зависимости от того, какой механизм SQL вы используете. имеем дело.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...