Имена списков всех таблиц в схеме SQL Server 2012
У меня есть схема в SQL Server 2012.
Есть ли команда, которую я могу запустить в SQL, чтобы получить имена всех таблиц в этой схеме, которые были заполнены пользователем?
Я знаю аналогичный запрос для MySQL SHOW TABLES;
, но это не работает с SQL Server.
Ответы
Ответ 1
В действительности вы должны использовать представления INFORMATION_SCHEMA
в вашей базе данных:
USE <your_database_name>
GO
SELECT * FROM INFORMATION_SCHEMA.TABLES
Затем вы можете фильтровать это по схеме таблицы и/или типу таблицы, например.
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'
Ответ 2
SELECT t.name
FROM sys.tables AS t
INNER JOIN sys.schemas AS s
ON t.[schema_id] = s.[schema_id]
WHERE s.name = N'schema_name';
Ответ 3
SQL Server 2005, 2008, 2012 или 2014:
SELECT * FROM information_schema.tables WHERE TABLE_TYPE='BASE TABLE' AND TABLE_SCHEMA = 'dbo'
Подробнее:
Как получить список всех таблиц в базе данных с помощью TSQL?
Ответ 4
SELECT t1.name AS [Schema], t2.name AS [Table]
FROM sys.schemas t1
INNER JOIN sys.tables t2
ON t2.schema_id = t1.schema_id
ORDER BY t1.name,t2.name
Ответ 5
SELECT *
FROM sys.tables t
INNER JOIN sys.objects o on o.object_id = t.object_id
WHERE o.is_ms_shipped = 0;