Condividi tramite


sp_tables (Transact-SQL)

Restituisce un elenco di oggetti su cui è possibile eseguire query nell'ambiente corrente, ovvero qualsiasi tabella utente, tabella di sistema o vista, ad eccezione degli oggetti sinonimi.

Nota

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

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

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

Argomenti

  • [ @table_name= ] 'name'
    Tabella o vista utilizzata per ottenere le informazioni di catalogo. name è di tipo nvarchar(384) e il valore predefinito è NULL. La ricerca con caratteri jolly è supportata.

  • [ @table_owner= ] 'owner'
    Proprietario della tabella utilizzata per ottenere le informazioni di catalogo. owner è di tipo nvarchar(384) e il valore predefinito è NULL. La ricerca con caratteri jolly è supportata. Se owner viene omesso, vengono applicate le regole di visibilità della tabella predefinite nel sistema DBMS sottostante.

    In SQL Server se l'utente corrente è il proprietario di una tabella avente il nome specificato, vengono restituite le colonne di tale tabella. Se owner viene omesso e l'utente corrente non è il proprietario di una tabella avente il nome specificato, viene eseguita la ricerca di una tabella avente il nome specificato e il cui proprietario corrisponde al proprietario del database. Se viene individuata, vengono restituite le colonne di tale tabella.

  • [ @table_qualifier= ] 'qualifier'
    Nome del qualificatore di tabella. qualifier è di tipo sysname e il valore predefinito è NULL. Vari prodotti DBMS supportano i nomi di tabella composti da tre parti (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= ] "'type', 'type'" ]
    Elenco di valori separati da virgola che fornisce informazioni su tutte le tabelle dei tipi specificati. I tipi validi includono TABLE, SYSTEMTABLE e VIEW. type è di tipo varchar(100) e il valore predefinito è NULL.

    Nota

    È 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 l'opzione SET QUOTED_IDENTIFIER è impostata su ON, è necessario sostituire le virgolette singole con quelle doppie e racchiudere l'intero parametro tra virgolette singole.

  • [ @fUsePattern = ] 'fUsePattern'
    Determina se il carattere di sottolineatura ( _ ), il simbolo di percentuale ( % ) e le parentesi quadre ( [ o ] ) vengono interpretate come caratteri jolly. I valori validi sono 0 (utilizzo dei criteri di ricerca disattivato) e 1 (utilizzo dei criteri di ricerca attivato). fUsePattern è di tipo bit e il valore predefinito è 1.

Valori restituiti

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 di database che ha creato la tabella. In questo campo viene sempre restituito un valore.

TABLE_NAME

sysname

Nome della tabella. In questo campo viene sempre restituito un valore.

TABLE_TYPE

varchar(32)

Tabella, tabella di sistema o vista.

REMARKS

varchar(254)

In SQL Server non viene restituito alcun 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 per una tabella specifica non vengono necessariamente verificate e di conseguenza 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 nel set di risultati di sp_server_info l'attributo del server ACCESSIBLE_TABLES è uguale a Y, vengono restituite solo le tabelle accessibili dall'utente corrente.

La stored procedure sp_tables corrisponde a SQLTables in ODBC. I risultati restituiti vengono ordinati in base a TABLE_TYPE, TABLE_QUALIFIER, TABLE_OWNER e TABLE_NAME.

Autorizzazioni

È richiesta l'autorizzazione SELECT per lo schema.

Esempi

A. Restituzione di 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 query nell'ambiente corrente.

EXEC sp_tables ;

B. Restituzione di informazioni sulle tabelle in un database

Nell'esempio seguente vengono restituite informazioni sulle tabelle appartenenti allo schema Person nel database AdventureWorks2008R2.

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