sp_tables (Transact-SQL)
Возвращает список объектов, к которым можно выполнять запросы в текущем окружении. Это означает, что в предложении FROM могут встречаться любые из этих объектов, кроме объектов-синонимов.
Примечание |
---|
Чтобы определить имя базового объекта для синонима, создайте запрос к представлению каталога sys.synonyms. |
Синтаксис
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. Некоторые СУБД поддерживают имена таблиц из трех частей (квалификатор**.владелец.**имя). В 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 ;
Б. Возврат сведений о таблицах в базе данных AdventureWorks
В следующем примере возвращаются сведения о таблицах, принадлежащих схеме Person в базе данных AdventureWorks.
USE AdventureWorks;
GO
EXEC sp_tables
@table_name = '%',
@table_owner = 'Person',
@table_qualifier = 'AdventureWorks';