Получить список таблиц в пользовательских БД в 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] для выбора базы данных
#5 — Выборка данных из БД. Where, Order, Limit

Для выборки данных из БД используется оператор Select. При его использовании вы можете указать какие поля необходимо выбрать. При выборе вы можеет установить условие (where), сортировку (Order) и ограничение по выборке (Limit).
Видеоурок
Команда Select
Для вывода записей из таблицы необходимо использовать команду Select . В команде указываются какие поля выбираются из таблицы, а также указывается из какой таблицы идет выборка.
-- Выбор всех записей SELECT * FROM table; -- Выбор всех записей, но лишь некоторые поля SELECT id, title FROM table; -- Выбор лишь некоторых записей SELECT * FROM table WHERE id > 6 AND id < 8;
Выборка по параметру
Для выборки лишь некоторых записей используется оператор Where . В нем указывается условие и лишь подходящие под это условие элементы будут выбраны.
SELECT * FROM table WHERE name = 'Alex'; SELECT * FROM table WHERE name = 'Alex' AND id > 88;
Сортировка
Сортировка данных происходит через команду Order By . В ней вы указываете по какому полю идет сортировка и в каком порядке она будет.
SELECT * FROM table ORDER BY id; -- Сортировка по убыванию SELECT * FROM table ORDER BY id DESC; -- Сортировка вместе с оператором Where SELECT * FROM table WHERE id > 9 ORDER BY id DESC;
Лимит по выбору
Вывод записей можно лимитировать. Для этого используйте команду Limit .
-- Вывод лишь одной записи SELECT * FROM table ORDER BY id LIMIT 1; -- Вывод 5 последних записей SELECT * FROM table ORDER BY id LIMIT 5; -- Пропуск первых 7 записей и вывод последующих 8 SELECT * FROM table ORDER BY id DESC LIMIT 7, 8;
Задание к уроку
Необходимо оформить подписку на проект, чтобы получить доступ ко всем домашним заданиям
Большое задание по курсу
Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца
Как вывести всю таблицу SQL исключая строки с повторением значения в ОДНОМ из столбцов?

Есть единственная таблица на MySQL, не удается составить запрос для вывода её таким образом чтобы исключить строки с одинаковым "автомобилем". При этом при отсечении строк интересует сохранение строки с наименьшим "временем".
В таблице есть столбцы ID, UserName, Car,Date,Time,NumberServer
Важно выводить все данные таблицы, кроме ID.
На скриншоте ID не выводится, столбец "место" заполнен на стороне PHP.
Может быть стоит создать отдельную таблицу для копирования нужных строк туда (запросом, а не руками).
- Вопрос задан более года назад
- 202 просмотра
4 комментария
Простой 4 комментария
Как сделать выборку из всех таблиц одной базы данных в SQL Server?

Такой задачи в реляционных СУБД нет. Если она возникла, у вас что-то не то с моделью. Или пересмотрите решение, или откажитесь от реляционной СУБД.
Vapaamies: Возможно пытается разобраться со структурой чужой базы данных. Например ищет достаточно редкое значение, чтобы понять, где оно может храниться 🙂
Решения вопроса 0
Ответы на вопрос 2

Просто укажите таблицы через запятую, название колонок тогда должны совпадать.
SELECT * FROM table_1, table_2 WHERE table_1.id > table_2.user_id
В коде выше, условие, если из таблицы 1 Id больше чем в юзере, мы вытаскиваем записи.
Естественно вставьте своё условие. )
И после FROM указывается не название базы данных(database), а имена таблиц.
После FROM можно попробовать вставить * , что означает "все", но не уверен, что так будет работать.
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать

igruschkafox @igruschkafox
Специалист по сопровождению БД MS SQL
SELECT * FROM sys.tables t1 JOIN sys.columns t2 ON t1.object_id=t2.object_id WHERE t2.column_name.xxx ='yyy'