Поделиться через


sp_tables (Transact-SQL)

Возвращает список объектов, к которым можно выполнять запросы в текущем окружении. Это означает любую пользовательскую таблицу, системную таблицу или представление, за исключением объектов синонимов.

ПримечаниеПримечание

Чтобы определить имя базового объекта для синонима, создайте запрос к представлению каталога sys.synonyms.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

sp_tables [ [ @table_name = ] 'name' ] 
     [ , [ @table_owner = ] 'owner' ] 
     [ , [ @table_qualifier = ] 'qualifier' ] 
     [ , [ @table_type = ] "type" ] 
     [ , [@fUsePattern = ] 'fUsePattern'];

Аргументы

  • [ @table_name= ] 'name'
    Таблица или представление, используемые для возврата сведений о каталоге. Аргумент name имеет тип nvarchar(384) и значение по умолчанию NULL. Поиск совпадений по шаблону поддерживается.

  • [ @table_owner= ] 'owner'
    Владелец таблицы, используемой для возврата сведений о каталоге. Аргумент owner имеет тип nvarchar(384) и значение по умолчанию NULL. Поиск совпадений по шаблону поддерживается. Если владелец не указан, применяются правила видимости таблиц по умолчанию базовой СУБД.

    В SQL Server, если текущий пользователь является владельцем таблицы с указанным именем, возвращаются ее столбцы. Если пользователь не указан, а текущий пользователь не является владельцем таблицы с заданным именем, процедура ищет таблицу с заданным именем, которая принадлежит владельцу базы данных. Если такая таблица существует, возвращаются ее столбцы.

  • [ @table_qualifier= ] 'qualifier'
    Имя квалификатора таблицы. Аргумент qualifier имеет тип sysname и значение по умолчанию NULL. Некоторые СУБД поддерживают трехкомпонентные имена таблиц (qualifier**.owner.**name). В SQL Server этот столбец представляет имя базы данных. В некоторых системах он представляет имя сервера из среды базы данных таблицы.

  • [ , [ @table_type= ] "'type', 'type'" ]
    Список значений, разделенных запятой, в котором представлены сведения обо всех таблицах с указанными табличными типами. Они включают TABLE, SYSTEMTABLE и VIEW. Аргумент type имеет тип varchar(100) и значение по умолчанию NULL.

    ПримечаниеПримечание

    Каждый табличный тип должен быть заключен в одиночные кавычки, а весь параметр должен быть заключен в двойные кавычки. Типы таблиц должны указываться в верхнем регистре. Если настройка SET QUOTED_IDENTIFIER установлена в ON, то каждый тип таблицы должен быть заключен в двойные кавычки, а весь параметр должен быть заключен в одинарные кавычки.

  • [ @fUsePattern = ] 'fUsePattern'
    Определяет, следует ли рассматривать символы подчеркивания (_), процента (%) и скобки ([ или ]) в качестве символов-шаблонов. Допустимые значения: 0 (сопоставление с шаблонами отключено) и 1 (сопоставление с шаблонами включено). Аргумент fUsePattern имеет тип bit и значение 1 по умолчанию.

Значения кода возврата

Нет

Результирующие наборы

Имя столбца

Тип данных

Описание

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 эквивалентна ODBC-функции SQLTables. Возвращенные результаты сортируются по столбцам TABLE_TYPE, TABLE_QUALIFIER, TABLE_QUALIFIER и TABLE_NAME.

Разрешения

Необходимо разрешение SELECT для схемы.

Примеры

А. Возврат списка объектов, к которым можно выполнять запросы в текущем окружении

Следующий пример возвращает список объектов, к которым можно выполнять запросы в текущем окружении.

EXEC sp_tables ;

Б. Возврат сведений о таблицах в базе данных

В следующем примере возвращаются сведения о таблицах, принадлежащих схеме Person в базе данных База данных AdventureWorks2008R2.

USE AdventureWorks2008R2;
GO
EXEC sp_tables 
   @table_name = '%',
   @table_owner = 'Person',
   @table_qualifier = 'AdventureWorks2008R2';