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';