sp_tables (Transact-SQL)

Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Управляемый экземпляр SQL Azure Конечная точка аналитики аналитики Synapse Analytics Analytics (PDW)SQL Analyticsв 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_OWNERTABLE_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';