Condividi tramite


sp_tables (Transact-SQL)

Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW) Endpoint di analisi SQL in Microsoft Fabric Warehouse in Microsoft Fabric

Viene restituito un elenco di oggetti su cui è possibile eseguire una query nell'ambiente corrente, ovvero qualsiasi tabella o vista eccetto gli oggetti sinonimo.

Nota

Per determinare il nome dell'oggetto di base di un sinonimo, eseguire una query sulla vista del catalogo sys.synonyms .

Convenzioni relative alla sintassi Transact-SQL

Sintassi

Sintassi per SQL Server, database SQL di Azure, Azure Synapse Analitica, Analitica Platform System (PDW):

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

Argomenti

[ @table_name = ] N'table_name'

Tabella utilizzata per restituire informazioni sul catalogo. @table_name è nvarchar(384), con un valore predefinito .NULL La ricerca con caratteri jolly è supportata.

[ @table_owner = ] N'table_owner'

Proprietario della tabella utilizzata per restituire informazioni sul catalogo. @table_owner è nvarchar(384), con il valore predefinito NULL. La ricerca con caratteri jolly è supportata. Se il proprietario non è specificato, si applicano le regole di visibilità della tabella predefinite del sistema DBMS sottostante.

In SQL Server, se l'utente corrente è proprietario di una tabella con il nome specificato, vengono restituite le colonne della tabella. Se il proprietario non è specificato e l'utente corrente non è proprietario di una tabella con il nome specificato, questa procedura cerca una tabella con il nome specificato di proprietà del proprietario del database. Se viene individuata, vengono restituite le colonne di tale tabella.

[ @table_qualifier = ] N'table_qualifier'

Nome del qualificatore di tabella. @table_qualifier è sysname, con un valore predefinito .NULL Vari prodotti DBMS supportano la denominazione in tre parti per le tabelle (<qualifier>.<owner>.<name>). In SQL Server questa colonna rappresenta il nome del database. In altri prodotti rappresenta il nome del server dell'ambiente di database della tabella.

[ @table_type = ] 'table_type'

Elenco di valori, separati da virgole, che fornisce informazioni su tutte le tabelle dei tipi di tabella specificati. Questi includono TABLE, SYSTEMTABLEe VIEW. @table_type è varchar(100), con il valore predefinito NULL.

È necessario racchiudere ogni tipo di tabella tra virgolette singole e l'intero parametro tra virgolette doppie. I tipi di tabella devono essere specificati in maiuscolo. Se SET QUOTED_IDENTIFIER è ON, ogni virgoletta singola deve essere doppia e l'intero parametro deve essere racchiuso tra virgolette singole.

[ @fUsePattern = ] fUsePattern

Determina se i caratteri di sottolineatura (_), percent (%) e parentesi quadre ([ o ]) vengono interpretati come caratteri jolly. I valori validi sono 0 (la corrispondenza dei criteri è disattivata) e 1 (la corrispondenza dei criteri è attivata). @fUsePattern è bit, con un valore predefinito .1

Valori del codice restituito

Nessuno.

Set di risultati

Nome colonna Tipo di dati Descrizione
TABLE_QUALIFIER sysname Nome del qualificatore della tabella. In SQL Server questa colonna rappresenta il nome del database. Questo campo può essere NULL.
TABLE_OWNER sysname Nome del proprietario della tabella. In SQL Server questa colonna rappresenta il nome dell'utente del database che ha creato la tabella. Questo campo restituisce sempre un valore.
TABLE_NAME sysname Nome tabella. Questo campo restituisce sempre un valore.
TABLE_TYPE varchar(32) Tabella, tabella di sistema o vista.
REMARKS varchar(254) SQL Server non restituisce un valore per questa colonna.

Osservazioni:

Per ottenere la massima interoperabilità, è consigliabile che nel client del gateway siano utilizzati solo i caratteri jolly standard SQL-92, ovvero i caratteri % e _.

Le informazioni sui privilegi relativi all'accesso in lettura o scrittura dell'utente corrente a una tabella specifica non vengono sempre controllate. Pertanto, l'accesso non è garantito. Questo set di risultati include non solo tabelle e viste, ma anche sinonimi e alias di gateway dei prodotti DBMS che supportano questi tipi. Se l'attributo ACCESSIBLE_TABLES server è Y nel set di risultati per sp_server_info, vengono restituite solo le tabelle a cui è possibile accedere dall'utente corrente.

sp_tables equivale a SQLTables in ODBC. I risultati restituiti vengono ordinati in TABLE_TYPEbase a , TABLE_QUALIFIERTABLE_OWNER, e TABLE_NAME.

Autorizzazioni

La visibilità dei metadati nelle viste del catalogo è limitata alle entità a protezione diretta di cui l'utente è proprietario o per le quali dispone di autorizzazioni. Per altre informazioni, vedere Metadata Visibility Configuration.

Esempi

R. Restituisce un elenco di oggetti su cui è possibile eseguire query nell'ambiente corrente

Nell'esempio seguente viene restituito un elenco di oggetti su cui è possibile eseguire una query nell'ambiente corrente.

EXEC sp_tables;

B. Restituisce informazioni sulle tabelle in uno schema specificato

Nell'esempio seguente vengono restituite informazioni sulle tabelle che appartengono allo Person schema nel database AdventureWorks2022.

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

Esempi: Azure Synapse Analytics e Piattaforma di strumenti analitici (PDW)

C. Restituisce un elenco di oggetti su cui è possibile eseguire query nell'ambiente corrente

Nell'esempio seguente viene restituito un elenco di oggetti su cui è possibile eseguire una query nell'ambiente corrente.

EXEC sp_tables;

D. Restituisce informazioni sulle tabelle in uno schema specificato

Nell'esempio seguente vengono restituite informazioni sulle tabelle delle dimensioni nel AdventureWorksPDW2012 database.

-- Uses AdventureWorks

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