Compartilhar via


sp_tables (Transact-SQL)

Retorna uma lista de objetos que podem ser consultados no ambiente atual. Isso significa qualquer tabela de usuário, tabela do sistema ou exibição, com exceção de objetos de sinônimo.

ObservaçãoObservação

Para determinar o nome do objeto base de um sinônimo, consulte a exibição de catálogo sys.synonyms.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

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

Argumentos

  • [ @table_name= ] 'name'
    É a tabela ou exibição usada para retornar informações de catálogo. name é nvarchar(384), com um padrão NULL. Há suporte para a correspondência de padrão curinga.

  • [ @table_owner= ] 'owner'
    É o proprietário da tabela usada para retornar informações de catálogo. owner é nvarchar(384), com um padrão NULL. Há suporte para a correspondência de padrão curinga. Se o proprietário não for especificado, serão aplicadas as regras de visibilidade de tabela ou exibição padrão do DBMS subjacente.

    No SQL Server, se o usuário atual possuir uma tabela com o nome especificado, as colunas dessa tabela serão retornadas. Se o proprietário não estiver especificado e o usuário atual não possuir uma tabela com o nome especificado, este procedimento procurará uma tabela com o nome especificado, pertencente ao proprietário do banco de dados. Caso exista, as colunas dessa tabela serão retornadas.

  • [ @table_qualifier= ] 'qualifier'
    É o nome do qualificador de tabela. qualifier é sysname, com um padrão NULL. Diversos produtos de DBMS dão suporte à nomenclatura de três partes para tabelas (qualifier**.owner.**name). No SQL Server, esta coluna representa o nome do banco de dados. Em alguns produtos, isso representa o nome do servidor do ambiente de banco de dados da tabela.

  • [ , [ @table_type= ] "'type', 'type'" ]
    É uma lista de valores, separados por vírgulas, que fornece informações sobre todas as tabelas dos tipos de tabela que estão especificados. Eles incluem TABLE, SYSTEMTABLE e VIEW. type é varchar(100), com um padrão NULL.

    ObservaçãoObservação

    Aspas simples devem incluir cada tipo de tabela e aspas duplas devem incluir o parâmetro inteiro. Os tipos de tabela devem ser em maiúsculas. Se SET QUOTED_IDENTIFIER for ON, cada aspa simples deverá ser duplicada e o parâmetro inteiro deverá ser incluído entre aspas duplas.

  • [ @fUsePattern = ] 'fUsePattern'
    Determina se os caracteres sublinhado ( _ ), porcentagem ( % ) e colchetes ( [ ou ] ) são interpretados como curingas. Os valores válidos são 0 (correspondência de padrão desativada) e 1 (correspondência de padrão ativada). fUsePattern é bit, com um padrão 1.

Valores de código de retorno

Nenhum

Conjuntos de resultados

Nome da coluna

Tipo de dados

Descrição

TABLE_QUALIFIER

sysname

Nome do qualificador de tabela. No SQL Server, esta coluna representa o nome do banco de dados. Este campo pode ser NULL.

TABLE_OWNER

sysname

Nome do proprietário da tabela. No SQL Server, esta coluna representa o nome do usuário de banco de dados que criou a tabela. Este campo sempre retorna um valor.

TABLE_NAME

sysname

Nome da tabela. Este campo sempre retorna um valor.

TABLE_TYPE

varchar(32)

Tabela, tabela do sistema ou exibição.

REMARKS

varchar(254)

O SQL Server não retorna um valor para esta coluna.

Comentários

Para interoperabilidade máxima, o cliente de gateway deve pressupor correspondência apenas do padrão SQL SQL-92 (os caracteres curinga % e _).

As informações de privilégio sobre o acesso de leitura ou gravação do usuário atual a uma tabela específica nem sempre são verificadas. Portanto, o acesso não está garantido. Esse conjunto de resultados inclui não apenas tabelas e exibições, mas também sinônimos e aliases de gateways para produtos DBMS que oferecem suporte a esses tipos. Se o atributo de servidor ACCESSIBLE_TABLES for Y no conjunto de resultados de sp_server_info, somente as tabelas que podem ser acessadas pelo usuário atual serão retornadas.

sp_tables é equivalente a SQLTables em ODBC. Os resultados retornados são ordenados por TABLE_TYPE, TABLE_QUALIFIER, TABLE_OWNER e TABLE_NAME.

Permissões

Requer permissão SELECT no esquema.

Exemplos

A. Retornando uma lista de objetos que podem ser consultados no ambiente atual

O exemplo a seguir retorna uma lista de objetos que podem ser consultados no ambiente atual.

EXEC sp_tables ;

B. Retornando informações sobre as tabelas em um banco de dados

O exemplo a seguir retorna informações sobre as tabelas que pertencem ao esquema Person no banco de dados AdventureWorks2008R2.

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