Как вывести все имена таблиц в SQL Server 2012 схеме
Пройдите тест, узнайте какой профессии подходите
Быстрый ответ
Чтобы получить перечень всех таблиц в определённой схеме SQL Server 2012, используйте следующий SQL-запрос:
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'YourSchema' AND TABLE_TYPE = 'BASE TABLE';
Здесь 'YourSchema'
— это название схемы, которая вас интересует. Этот SQL-запрос вернет таблицы, исключая представления.
Углубленные знания о метаданных и оптимизациях
Представления INFORMATION_SCHEMA
— это стандартизированные средства для работы с различными SQL-базами данных, благодаря которым можно надежно извлекать метаданные элементов базы данных. Использование этих представлений вместо системных таблиц гарантирует совместимость и точность данных для разных версий SQL и платформ.
-- Сортировка названий таблиц для большей наглядности
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'YourSchema' AND TABLE_TYPE = 'BASE TABLE'
ORDER BY TABLE_NAME;
Если вам нужно узнать больше информации о владельцах таблиц и датах их создания, добавьте объединение представлений INFORMATION_SCHEMA
с другими системными представлениями:
-- 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
исключает системные таблицы.
При составлении запросов всегда указывайте префикс:
USE database_name;
GO
Здесь USE
задаёт целевую конкретную базу данных, а GO
запускает пакетную обработку команд.
Визуализация
Представьте, что библиотека (📖) — это база данных, в которой книги соответствуют схемам, а каждая глава — это таблица:
📖 Схема: [Приключения, Наука, Магия, Кулинария]
-- Это похоже на просмотр оглавления книги, не рискуя порезаться о бумагу!
SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'YourSchemaName';
Содержимое схемы YourSchemaName:
- Приключения 🧭
- Наука 🔬
- Магия (исключено) 🚫
- Кулинария 🍳
Подробнее о сценариях и использовании
Представления: включение и исключение
Для того, чтобы включить представления:
-- Праздник данных на вашем экране
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'YourSchema';
А чтобы исключить представления:
-- Эксклюзивно для таблиц, представления отбираем позже!
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'YourSchema' AND TABLE_TYPE = 'BASE TABLE';
Работа со множеством схем
При работе с несколькими схемами следует использовать правильный фильтр:
-- Мы пробиваемся через заросли схем!
SELECT TABLE_SCHEMA, TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA IN ('Schema1', 'Schema2') AND TABLE_TYPE = 'BASE TABLE';
Объединение баз данных
Для запросов между подключенными базами данных используйте полностью квалифицированные имена и определения соединения:
-- Познакомили таблицы из разных баз данных...
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-запросов. Это как назначить клички домашним животным.
- Убедитесь, что вы всегда проверяете контекст базы данных и схемы, чтобы не заблудиться в данных.
Полезные материалы
- MSSQLTips. Учебное пособие по системным таблицам SQL Server — расширенная информация об INFORMATION_SCHEMA.COLUMNS.
- Simple-Talk. Руководство по системным представлениям SQL Server — базовая информация по работе с системными представлениями SQL Server.
- C# Corner. Обучающий материал по системным представлениям каталогов SQL Server — описание системных представлений каталогов в SQL Server 2012.
- T-SQL Querying – Использование системных представлений каталогов для поиска метаданных (глава книги) — методы поиска метаданных с помощью системных представлений каталогов.