Вывести список таблиц
Чтобы вывести список всех таблиц пользователей можно воспользоваться консольной утилитой « SQL Plus ». Что иронично. Для этого выполняем команду « cmd » в разделе «Пуск – Выполнить…». Далее появится черное окно в котором надо выполнить « sqlplus », потом ввести имя пользователя и пароль. И только после появления строки вида « SQL >» можно вводить SQL -код.
SELECT owners, table_name
FROM all_tables
ORDER BY 1, 2;
Как получить список всех таблиц в базе данных Microsoft SQL Server?
Если у Вас встала задача определить количество таблиц в базе данных Microsoft SQL Server, то данная статья Вам поможет, так как в ней мы рассмотрим несколько способов реализации того, как можно получить список всех пользовательских таблиц, включая некоторые их характеристики с помощью SQL запроса.
Всю информацию о таблицах и других объектах SQL сервера можно посмотреть в графической среде SQL Server Management Studio, но иногда требуется выгрузить данную информацию или просто получить к ней доступ, для того чтобы использовать ее, например, в своих SQL инструкциях, это можно сделать несколькими способами, и сейчас мы их рассмотрим.
Получаем список всех таблиц с помощью представления информационной схемы
В Microsoft SQL Server есть специальная схема, предназначенная для получения информации о метаданных — это INFORMATION_SCHEMA. Подробно о ней мы говорили в материале – «Представления информационной схемы Microsoft SQL Server».
Для того чтобы получить информацию о таблицах в БД, существует представление информационной схемы TABLES. Допустим, нам нужно получить просто перечень таблиц, для этого пишем следующий SQL запрос (в моей тестовой базе всего одна таблица).
SELECT TABLE_NAME AS [Название таблицы] FROM INFORMATION_SCHEMA.TABLES WHERE table_type='BASE TABLE'

В данном случае мы указали условие table_type=’BASE TABLE’, так как данное представление содержит еще и информацию о представлениях (VIEW).
Недостатком данного способа является то, что никакой больше полезной информации в представлении INFORMATION_SCHEMA.TABLES нет.
Получаем список всех таблиц с помощью системного представления sys.tables
Альтернативным способом и более удачным, если Вам нужна дополнительная информация о таблицах, является способ с использованием системного представления sys.tables. Давайте сейчас с помощью этого представления выведем список таблиц, а также получим дополнительные сведения о дате создания таблицы и дате последнего редактирования этой таблицы.
SELECT name AS [Название таблицы], create_date AS [Дата создания], modify_date AS [Дата редактирования] FROM sys.tables

Получаем список всех таблиц с помощью системной процедуры
Еще одним способом получения списка таблиц в базе данных Microsoft SQL Server является использование системной процедуры sp_Tables, но, на мой взгляд, данный способ менее удобный, к тому же он возвращает также немного сведений, по сути, только название таблиц.
Для того чтобы получить сведения о таблицах в БД нам нужно указать параметр @table_type со значением ‘TABLE’, так как данная процедура возвращает еще данные о представлениях и системных таблицах. Следует обратить внимание на то, что значение параметра нужно заключать в двойные кавычки, а каждое значение типа в одиночные кавычки, так как через запятую возможно указывать несколько типов (например, для того чтобы получить таблицы и представления, в значение параметра нужно указать — «‘TABLE’, ‘VIEW’»). Также мы укажем параметр @table_owner, для того чтобы ограничиться одним владельцем.
EXEC sp_Tables @table_owner = 'dbo', @table_type = "'TABLE'";

Вот мы с Вами и рассмотрели три возможности получения списка таблиц в Microsoft SQL Server. Всем тем, кто только начинает свое знакомство с языком SQL, рекомендую прочитать книгу «SQL код» – это самоучитель по языку SQL, которую написал я, и в которой я подробно, и в то же время простым языком, рассказываю о языке SQL.
У меня все, пока!
Заметка! Для профессионального изучения языка T-SQL рекомендую посмотреть мои видеокурсы по T-SQL.
Получить список таблиц в пользовательских БД в SQL Server
Добрый день. Подскажите запрос на получение списка таблиц пользовательских (не системных) баз данных в SQL Server 2008.
Отслеживать
51.2k 86 86 золотых знаков 266 266 серебряных знаков 505 505 бронзовых знаков
задан 6 июл 2011 в 7:33
285 2 2 золотых знака 4 4 серебряных знака 17 17 бронзовых знаков
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Есть ещё вариант SELECT * FROM INFORMATION_SCHEMA.TABLES
Он более кроссплатформенный относительно СУБД, т.к. INFORMATION_SCHEMA является частью стандарта SQL, а sys.objects нет.
Хотя там есть не всё, многие вещи без представлений из схемы sys не получить.
Отслеживать
ответ дан 6 июл 2011 в 9:04
8,875 25 25 серебряных знаков 66 66 бронзовых знаков
Запомню, спасибо
6 июл 2011 в 10:52
//Выдает все базы данных на сервере
SELECT name FROM sys.databases
//Выдает все таблицы в Базе данных
SELECT * FROM sys.objects WHERE type in (N’U’)
Отслеживать
ответ дан 6 июл 2011 в 7:43
841 1 1 золотой знак 9 9 серебряных знаков 26 26 бронзовых знаков
Второй запрос возвращает список таблиц из СИСТЕМНОЙ базы master. Наверное я неправильно сформулировал вопрос: Нужно получать список таблиц из баз, которые созданы пользователем, т.е. создана база БАЗА1 с таблицами ТАБЛИЦА1, ТАБЛИЦА2 и т.д. Нужно получить список этих таблиц: ТАБЛИЦА1, ТАБЛИЦА2
6 июл 2011 в 8:07
Второй запрос выведет вам таблицы из базы данных, которую вы выберите. USE [MyDataBase] для выбора базы данных
Как получить список таблиц sql
Можно использовать два альтернативных синтаксиса — tbl_name FROM db_name и db_name.tbl_name . Приведенные ниже два оператора эквивалентны:
mysql> SHOW INDEX FROM mytable FROM mydb; mysql> SHOW INDEX FROM mydb.mytable;
Команда SHOW DATABASES выдает список баз данных на компьютере, где установлен сервер MySQL. Этот список можно также получить, воспользовавшись инструментом командной строки mysqlshow . В версии 4.0.2 можно увидеть только те базы данных, для которых у вас есть какие-либо привилегии, если вы не имеете глобальной привилегии SHOW DATABASES .
Команда SHOW TABLES выводит список таблиц в указанной базе данных. Этот список также можно получить, используя команду mysqlshow db_name .
Примечание: если у пользователя нет никаких привилегий для таблицы, таблица не будет показана в результатах команды SHOW TABLES или mysqlshow db_name .
Команда SHOW OPEN TABLES выводит список таблиц, которые в настоящий момент открыты в кэше таблицы. See section 5.4.7 Открытие и закрытие таблиц в MySQL. В поле Comment указывается, сколько раз таблица кэшировалась ( cached ) и сколько раз использовалась ( in_use ).
Команда SHOW COLUMNS выводит список столбцов в заданной таблице. Если указать параметр FULL , то будут показаны также ваши привилегии для каждого столбца. Если типы столбцов отличаются от заданных в параметрах оператора CREATE TABLE , учтите, что MySQL иногда изменяет типы столбцов. See section 6.5.3.1 Молчаливые изменения определений столбцов.
Оператор DESCRIBE предоставляет почти такую же информацию, что и SHOW COLUMNS . See section 6.6.2 Синтаксис команды DESCRIBE (Получение информации о столбцах).
Команда SHOW FIELDS является синонимом команды SHOW COLUMNS , а команда SHOW KEYS — синонимом SHOW INDEX . Список столбцов или индексов таблицы можно также вывести при помощи команды mysqlshow db_name tbl_name или mysqlshow -k db_name tbl_name .
Команда SHOW INDEX выводит информацию по индексу в формате, подобном формату вывода запроса SQLStatistics в ODBC . Выводятся следующие столбцы:
| Столбец | Значение |
| Table | Имя таблицы. |
| Non_unique | 0 если индекс не может содержать дублирующихся значений. |
| Key_name | Имя индекса. |
| Seq_in_index | Порядковый номер столбца в индексе, начиная с 1. |
| Column_name | Имя столбца. |
| Collation | Как столбцы отсортированы в индексе. В MySQL в данном столбце могут присутствовать значения ‘A’ (в порядке возрастания) или NULL (не отсортирован). |
| Cardinality | Количество уникальных значений в индексе. Обновляется путем запуска isamchk -a . |
| Sub_part Количество индексированных символов, если столбец индексируется частично. Если проиндексирован весь ключ, то будет содержаться значение NULL . | |
| Null | Содержит значение ‘YES’ , если столбец может содержать NULL . |
| Index_type Используемый метод индексирования. | |
| Comment | Различные примечания. На данный момент в версиях MySQL < 4.0.2 выдается, является индекс FULLTEXT или нет. |
Обратите внимание на то, что значение Cardinality подсчитывается по результатам статистики, сохраняющейся в виде целых чисел, которые недостаточно точны для небольших таблиц.
Столбцы Null и Index_type были добавлены начиная с версии MySQL 4.0.2.
