Compartilhar via


sp_tables (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics PDW (Analytics Platform System) Ponto de extremidade de análise do SQL Warehouse no Microsoft Fabric

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

Observação

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

Convenções de sintaxe de Transact-SQL

Sintaxe

Sintaxe para SQL Server, Banco de Dados SQL do Azure, Azure Synapse Analytics, PDW (Analytics Platform System):

sp_tables
    [ [ @table_name = ] N'table_name' ]
    [ , [ @table_owner = ] N'table_owner' ]
    [ , [ @table_qualifier = ] N'table_qualifier' ]
    [ , [ @table_type = ] 'table_type' ]
    [ , [ @fUsePattern = ] fUsePattern ]
[ ; ]

Argumentos

[ @table_name = ] N'table_name'

A tabela usada para retornar informações de catálogo. @table_name é nvarchar(384), com um padrão de NULL. Há suporte para a correspondência do padrão curinga.

@table_owner [ = ] N'table_owner'

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

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 for 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 [ = ] N'table_qualifier'

O nome do qualificador de tabela. @table_qualifier é sysname, com um padrão de NULL. Vários produtos DBMS suportam nomenclatura de três partes para tabelas (<qualifier>.<owner>.<name>). No SQL Server, essa coluna representa o nome do banco de dados. Em alguns produtos, ele representa o nome do servidor do ambiente de banco de dados da tabela.

@table_type [ = ] 'table_type'

Uma lista de valores, separados por vírgulas, que fornece informações sobre todas as tabelas dos tipos de tabela especificados. Elas incluem TABLE, SYSTEMTABLE e VIEW. @table_type é varchar(100), com um padrão de NULL.

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 deve ser duplicada e todo o parâmetro deve ser colocado entre aspas simples.

@fUsePattern [ = ] fUsePattern

Determina se os caracteres sublinhado (_), porcentagem (%) e colchete ([ ou ]) são interpretados como caracteres curinga. Os valores válidos são 0 (a correspondência de padrões está desativada) e 1 (a correspondência de padrões está ativada). @fUsePattern é bit, com um padrão de 1.

Valores do código de retorno

Nenhum.

Conjunto de resultados

Nome da coluna Tipo de dados Descrição
TABLE_QUALIFIER sysname Nome do qualificador de tabela. No SQL Server, essa coluna representa o nome do banco de dados. Este campo pode ser NULL.
TABLE_OWNER sysname O 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. Esse campo sempre retorna um valor.
TABLE_NAME sysname Nome da tabela. Esse 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 essa 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 é 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 ACCESSIBLE_TABLES do servidor for Y no conjunto de resultados para 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

A visibilidade dos metadados em exibições do catálogo está limitada aos protegíveis que pertencem a um usuário ou para os quais o usuário recebeu permissão. Para obter mais informações, consulte Metadata Visibility Configuration.

Exemplos

R. Retornar uma lista de objetos que podem ser consultados no ambiente atual

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

EXEC sp_tables;

B. Retornar informações sobre as tabelas em um esquema especificado

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

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

Exemplos: Azure Synapse Analytics e PDW (Analytics Platform System)

C. Retornar uma lista de objetos que podem ser consultados no ambiente atual

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

EXEC sp_tables;

D. Retornar informações sobre as tabelas em um esquema especificado

O exemplo a seguir retorna informações sobre as tabela de dimensões no banco de dados AdventureWorksPDW2012.

-- Uses AdventureWorks

EXEC sp_tables
   @table_name = 'Dim%',
   @table_owner = 'dbo',
   @table_qualifier = 'AdventureWorksPDW2012';