sp_tables (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punto de conexión de análisis SQL en Microsoft FabricAlmacenamiento en Microsoft Fabric

Devuelve una lista de objetos que se pueden consultar en el entorno actual. Esto significa cualquier tabla o vista, excepto los objetos sinónimos.

Nota:

Para determinar el nombre del objeto base de un sinónimo, realice una consulta en la vista de catálogo sys.synonyms.

Convenciones de sintaxis de Transact-SQL

Sintaxis

Sintaxis para SQL Server, Azure SQL Database, Azure Synapse Analytics, Almacenamiento de datos paralelos:

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'

Tabla que se usa para devolver información de catálogo. @table_name es nvarchar(384), con un valor predeterminado de NULL. Se admite la coincidencia de patrón de caracteres comodín.

[ @table_owner = ] N'table_owner'

Propietario de la tabla que se usa para devolver información del catálogo. @table_owner es nvarchar(384), con un valor predeterminado de NULL. Se admite la coincidencia de patrón de caracteres comodín. Si no se especifica el propietario, se aplican las reglas de visibilidad de tabla predeterminadas del DBMS subyacente.

En SQL Server, si el usuario actual posee una tabla con el nombre especificado, se devuelven las columnas de esa tabla. Si no se especifica el propietario y el usuario actual no posee una tabla con el nombre especificado, este procedimiento busca una tabla con el nombre especificado propiedad del propietario de la base de datos. Si existe una, se devuelven las columnas de esa tabla.

[ @table_qualifier = ] N'table_qualifier'

Nombre del calificador de tabla. @table_qualifier es sysname, con un valor predeterminado de NULL. Varios productos de DBMS admiten la nomenclatura de tres partes para tablas (<qualifier>.<owner>.<name>). En SQL Server, esta columna representa el nombre de la base de datos. En algunos productos, representa el nombre de servidor del entorno de base de datos de la tabla.

[ @table_type = ] 'table_type'

Lista de valores, separados por comas, que proporciona información sobre todas las tablas de los tipos de tabla especificados. Estas incluyen TABLE , SYSTEMTABLE y VIEW . @table_type es varchar(100), con un valor predeterminado de NULL.

Cada tipo de tabla debe especificarse entre comillas simples y todo el parámetro debe especificarse entre comillas dobles. Los tipos de tabla deben especificarse en mayúsculas. Si SET QUOTED_IDENTIFIER es ON, cada comilla única debe duplicarse y todo el parámetro debe incluirse entre comillas simples.

[ @fUsePattern = ] fUsePattern

Determina si los caracteres de subrayado (), porcentaje (_%) y corchetes ([ o ]) se interpretan como caracteres comodín. Los valores válidos son 0 (la coincidencia de patrones está desactivada) y 1 (la coincidencia de patrones está activada). @fUsePattern es bit, con un valor predeterminado de 1.

Valores de código de retorno

Ninguno.

Conjunto de resultados

Nombre de la columna Tipo de datos Descripción
TABLE_QUALIFIER sysname Nombre del calificador de la tabla. En SQL Server, esta columna representa el nombre de la base de datos. Este campo puede ser NULL.
TABLE_OWNER sysname Nombre del propietario. En SQL Server, esta columna representa el nombre del usuario de la base de datos que creó la tabla. Este campo siempre devuelve un valor.
TABLE_NAME sysname Nombre de la tabla. Este campo siempre devuelve un valor.
TABLE_TYPE varchar(32) Tabla, tabla del sistema o vista.
REMARKS varchar(254) SQL Server no devuelve un valor para esta columna.

Comentarios

Para obtener la máxima interoperatividad, el cliente de la puerta de enlace solo debe dar por supuesta la concordancia del patrón estándar de SQL-92 (los caracteres comodín % y _).

No siempre se comprueba la información de privilegios sobre el acceso de lectura o escritura del usuario actual a una tabla específica. Por lo tanto, no se garantiza el acceso. Este conjunto de resultados no solo incluye tablas y vistas, sino también sinónimos y alias para las puertas de enlace a productos DBMS que admiten dichos tipos. Si el atributo ACCESSIBLE_TABLES de servidor es Y en el conjunto de resultados para sp_server_info, solo se devuelven las tablas a las que puede acceder el usuario actual.

sp_tables es equivalente a SQLTables en ODBC. Los resultados devueltos se ordenan mediante TABLE_TYPE, TABLE_QUALIFIER, TABLE_OWNERy TABLE_NAME.

Permisos

La visibilidad de los metadatos de las vistas de catálogo se limita a elementos protegibles que un usuario posee o en el que se concedió algún permiso al usuario. Para obtener más información, consulte Metadata Visibility Configuration.

Ejemplos

A Devuelve una lista de objetos que se pueden consultar en el entorno actual.

En el siguiente ejemplo se devuelve una lista de objetos que pueden ser consultas en el entorno actual.

EXEC sp_tables;

B. Devolver información sobre las tablas de un esquema especificado

En el siguiente ejemplo se devuelve información sobre las tablas que pertenecen al esquema Person de la base de datos AdventureWorks2022.

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

Ejemplos: Azure Synapse Analytics y Sistema de la plataforma de análisis (PDW)

C. Devuelve una lista de objetos que se pueden consultar en el entorno actual.

En el siguiente ejemplo se devuelve una lista de objetos que pueden ser consultas en el entorno actual.

EXEC sp_tables;

D. Devolver información sobre las tablas de un esquema especificado

En el ejemplo siguiente se devuelve información sobre las tablas de dimensiones de una de base de datos AdventureWorksPDW2012.

-- Uses AdventureWorks

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