sp_tables (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure конечной точке аналитики платформы Аналитики Azure Synapse Analytics (PDW) в Microsoft Fabric Хранилище в Microsoft Fabric
Возвращает список объектов, к которым можно выполнять запросы в текущем окружении. Это означает применение любой таблицы или представления, кроме объектов-синонимов.
Примечание.
Чтобы определить имя базового объекта синонима, выполните запрос к представлению каталога sys.синонимов .
Соглашения о синтаксисе Transact-SQL
Синтаксис
Синтаксис для SQL Server, База данных SQL Azure, Azure Synapse Analytics, Parallel Data Warehouse:
sp_tables
[ [ @table_name = ] N'table_name' ]
[ , [ @table_owner = ] N'table_owner' ]
[ , [ @table_qualifier = ] N'table_qualifier' ]
[ , [ @table_type = ] 'table_type' ]
[ , [ @fUsePattern = ] fUsePattern ]
[ ; ]
Аргументы
[ @table_name = ] N'table_name'
Таблица, используемая для возврата сведений о каталоге. @table_name — nvarchar(384) с значением по умолчаниюNULL
. Поиск совпадений по шаблону поддерживается.
[ @table_owner = ] N'table_owner'
Владелец таблицы, используемой для возврата сведений о каталоге. @table_owner — nvarchar(384) с значением по умолчаниюNULL
. Поиск совпадений по шаблону поддерживается. Если владелец не указан, применяются правила видимости таблицы по умолчанию для базовых СУБД.
В SQL Server, если текущий пользователь владеет таблицей с указанным именем, возвращаются столбцы этой таблицы. Если владелец не указан, а текущий пользователь не владеет таблицей с указанным именем, эта процедура ищет таблицу с указанным именем, принадлежащим владельцу базы данных. Если такая таблица существует, возвращаются ее столбцы.
[ @table_qualifier = ] N'table_qualifier'
Имя квалификатора таблицы. @table_qualifier имеет имя sysname с значением по умолчаниюNULL
. Различные продукты СУБД поддерживают трехкомпонентное именование таблиц (<qualifier>.<owner>.<name>
). В SQL Server этот столбец представляет имя базы данных. В некоторых СУБД он представляет имя сервера в среде базы данных, где находится таблица.
[ @table_type = ] 'table_type'
Список значений, разделенных запятыми, который содержит сведения обо всех таблицах указанных типов таблиц. Это операторы TABLE
, SYSTEMTABLE
, а также VIEW
. @table_type — varchar(100) с значением по умолчаниюNULL
.
Каждый табличный тип должен быть заключен в одиночные кавычки, а весь параметр должен быть заключен в двойные кавычки. Типы таблиц должны указываться в верхнем регистре. Если SET QUOTED_IDENTIFIER
есть ON
, каждый одинарный кавычки должен быть двойным, и весь параметр должен быть заключен в одинарные кавычки.
[ @fUsePattern = ] fUsePattern
Определяет, интерпретируются ли символы подчеркивания (_
), процента () и скобки (%
[
или]
) как подстановочные знаки. Допустимые значения: 0
(сопоставление шаблонов отключено) и 1
(сопоставление шаблонов включено). @fUsePattern бит с значением по умолчанию1
.
Значения кода возврата
Нет.
Результирующий набор
Имя столбца | Тип данных | Description |
---|---|---|
TABLE_QUALIFIER |
sysname | Имя квалификатора таблицы. В SQL Server этот столбец представляет имя базы данных. Это поле может быть NULL . |
TABLE_OWNER |
sysname | Имя владельца таблицы. В SQL Server этот столбец представляет имя пользователя базы данных, создавшего таблицу. Это поле всегда возвращает значение. |
TABLE_NAME |
sysname | Имя таблицы. Это поле всегда возвращает значение. |
TABLE_TYPE |
varchar(32) | Таблица, системная таблица или представление. |
REMARKS |
varchar(254) | SQL Server не возвращает значение для этого столбца. |
Замечания
Для максимальной совместимости клиент шлюза должен принимать только сопоставление шаблонов стандарта SQL-92 (символы-шаблоны «%» и «_»).
Сведения о доступе на чтение или запись текущего пользователя к определенной таблице не всегда проверяются. Поэтому доступ не гарантируется. Этот результирующий набор включает не только таблицы и представления, но и синонимы, и псевдонимы для шлюзов к СУБД, поддерживающим эти типы. Если атрибут ACCESSIBLE_TABLES
сервера имеет значение Y в результирующем наборе sp_server_info
, возвращаются только таблицы, к которым может получить доступ текущий пользователь.
sp_tables
эквивалентен SQLTables
в ODBC. Возвращаемые результаты упорядочены по TABLE_TYPE
, TABLE_QUALIFIER
и TABLE_OWNER
TABLE_NAME
.
Разрешения
Видимость метаданных в представлениях каталога ограничена защищаемыми объектами, которыми владеет пользователь или которым пользователь получил некоторое разрешение. Дополнительные сведения см. в разделе Metadata Visibility Configuration.
Примеры
А. Возвращает список объектов, которые можно запрашивать в текущей среде.
Следующий пример возвращает список объектов, которые могут быть запросами в текущем окружении.
EXEC sp_tables;
B. Возврат сведений о таблицах в указанной схеме
В следующем примере возвращаются сведения о таблицах, принадлежащих схеме Person
в базе данных AdventureWorks2022.
USE AdventureWorks2022;
GO
EXEC sp_tables
@table_name = '%',
@table_owner = 'Person',
@table_qualifier = 'AdventureWorks2022';
Примеры: Azure Synapse Analytics и система платформы аналитики (PDW)
C. Возвращает список объектов, которые можно запрашивать в текущей среде.
Следующий пример возвращает список объектов, которые могут быть запросами в текущем окружении.
EXEC sp_tables;
D. Возврат сведений о таблицах в указанной схеме
В следующем примере возвращаются сведения о таблицах измерений в AdventureWorksPDW2012
базе данных.
-- Uses AdventureWorks
EXEC sp_tables
@table_name = 'Dim%',
@table_owner = 'dbo',
@table_qualifier = 'AdventureWorksPDW2012';