Как вывести все имена таблиц в SQL Server 2012 схеме

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Чтобы получить перечень всех таблиц в определённой схеме SQL Server 2012, используйте следующий SQL-запрос:

SQL
Скопировать код
SELECT TABLE_NAME 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA = 'YourSchema' AND TABLE_TYPE = 'BASE TABLE';

Здесь 'YourSchema' — это название схемы, которая вас интересует. Этот SQL-запрос вернет таблицы, исключая представления.

Кинга Идем в IT: пошаговый план для смены профессии

Углубленные знания о метаданных и оптимизациях

Представления INFORMATION_SCHEMA — это стандартизированные средства для работы с различными SQL-базами данных, благодаря которым можно надежно извлекать метаданные элементов базы данных. Использование этих представлений вместо системных таблиц гарантирует совместимость и точность данных для разных версий SQL и платформ.

SQL
Скопировать код
-- Сортировка названий таблиц для большей наглядности
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA = 'YourSchema' AND TABLE_TYPE = 'BASE TABLE'
ORDER BY TABLE_NAME;

Если вам нужно узнать больше информации о владельцах таблиц и датах их создания, добавьте объединение представлений INFORMATION_SCHEMA с другими системными представлениями:

SQL
Скопировать код
-- INNER JOIN: только отобранные данные будут объединены, словно гости на закрытой вечеринке
SELECT t.name AS TableName, s.name AS SchemaName
FROM sys.tables t
INNER JOIN sys.schemas s ON t.schema_id = s.schema_id
WHERE s.name = N'YourSchema' AND t.is_ms_shipped = 0
ORDER BY SchemaName, TableName;

Замените N'YourSchema' на название вашей схемы и учтите, что условие t.is_ms_shipped = 0 исключает системные таблицы.

При составлении запросов всегда указывайте префикс:

SQL
Скопировать код
USE database_name;
GO

Здесь USE задаёт целевую конкретную базу данных, а GO запускает пакетную обработку команд.

Визуализация

Представьте, что библиотека (📖) — это база данных, в которой книги соответствуют схемам, а каждая глава — это таблица:

Markdown
Скопировать код
📖 Схема: [Приключения, Наука, Магия, Кулинария]
SQL
Скопировать код
-- Это похоже на просмотр оглавления книги, не рискуя порезаться о бумагу!
SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'YourSchemaName';
Markdown
Скопировать код
Содержимое схемы YourSchemaName:
- Приключения 🧭
- Наука 🔬
- Магия (исключено) 🚫
- Кулинария 🍳

Подробнее о сценариях и использовании

Представления: включение и исключение

Для того, чтобы включить представления:

SQL
Скопировать код
-- Праздник данных на вашем экране
SELECT TABLE_NAME 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA = 'YourSchema';

А чтобы исключить представления:

SQL
Скопировать код
-- Эксклюзивно для таблиц, представления отбираем позже!
SELECT TABLE_NAME 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA = 'YourSchema' AND TABLE_TYPE = 'BASE TABLE';

Работа со множеством схем

При работе с несколькими схемами следует использовать правильный фильтр:

SQL
Скопировать код
-- Мы пробиваемся через заросли схем!
SELECT TABLE_SCHEMA, TABLE_NAME 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA IN ('Schema1', 'Schema2') AND TABLE_TYPE = 'BASE TABLE';

Объединение баз данных

Для запросов между подключенными базами данных используйте полностью квалифицированные имена и определения соединения:

SQL
Скопировать код
-- Познакомили таблицы из разных баз данных...
SELECT t.TABLE_NAME, s.TABLE_SCHEMA 
FROM YourDatabase1.INFORMATION_SCHEMA.TABLES s
JOIN YourDatabase2.INFORMATION_SCHEMA.TABLES t ON s.TABLE_SCHEMA = t.TABLE_SCHEMA
WHERE s.TABLE_TYPE = 'BASE TABLE';

Избегание неоптимальных практик

  • Избегайте обращения к системным таблицам, чтобы избежать возможных изменений в будущем.
  • Используйте алиасы для улучшения читаемости SQL-запросов. Это как назначить клички домашним животным.
  • Убедитесь, что вы всегда проверяете контекст базы данных и схемы, чтобы не заблудиться в данных.

Полезные материалы

  1. MSSQLTips. Учебное пособие по системным таблицам SQL Server — расширенная информация об INFORMATION_SCHEMA.COLUMNS.
  2. Simple-Talk. Руководство по системным представлениям SQL Server — базовая информация по работе с системными представлениями SQL Server.
  3. C# Corner. Обучающий материал по системным представлениям каталогов SQL Server — описание системных представлений каталогов в SQL Server 2012.
  4. T-SQL Querying – Использование системных представлений каталогов для поиска метаданных (глава книги) — методы поиска метаданных с помощью системных представлений каталогов.