Compartir a través de


sp_tables (Transact-SQL)

Devuelve una lista de objetos que se pueden consultar en el entorno actual. Es decir, cualquier objeto que pueda aparecer en una cláusula FROM, excepto 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.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

  • [ @table_name= ] 'name'
    Es la tabla que se utiliza para devolver información de catálogo. name es de tipo nvarchar(384) y su valor predeterminado es NULL. Se admite la coincidencia de patrones con caracteres comodín.

  • [ @table_owner= ] 'owner'
    Es el propietario de la tabla que se utiliza para devolver información de catálogo. owner es de tipo nvarchar(384) y su valor predeterminado es NULL. Se admite la coincidencia de patrones con 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 es propietario de una tabla con el nombre especificado, se devuelven las columnas de esa tabla. Si no se especifica el propietario y el usuario actual no es el propietario de una tabla con el nombre especificado, este procedimiento busca una tabla con el nombre especificado que pertenezca al propietario de la base de datos. Si existe una, se devuelven las columnas de esa tabla.

  • [ @table_qualifier= ] 'qualifier'
    Es el nombre del calificador de la tabla. qualifier es de tipo sysname y su valor predeterminado es NULL. Varios productos DBMS admiten para las tablas los nombres formados por tres componentes (qualifier**.owner.**name). En SQL Server, esta columna representa el nombre de la base de datos. En algunos productos, representa el nombre del servidor del entorno de base de datos de la tabla.

  • [ , [ @table_type= ] "'type', 'type'" ]
    Es una lista de los valores, separados por comas, que proporcionan información acerca de todas las tablas de los tipos especificados. Se incluyen TABLE, SYSTEMTABLE y VIEW. type es de tipo varchar(100) y su valor predeterminado es NULL.

    [!NOTA]

    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 está establecido en ON (activado), las comillas simples deben ser comillas dobles y todo el parámetro debe especificarse entre comillas simples.

  • [ @fUsePattern = ] 'fUsePattern'
    Determina si los caracteres de subrayado ( _ ), porcentaje ( % ) y paréntesis ( [ o ] ) se interpretan como caracteres comodín. Los valores válidos son 0 (coincidencia de patrón desactivada) y 1 (coincidencia de patrón activada). fUsePattern es de tipo bit y su valor predeterminado es 1.

Valores de código de retorno

Ninguno

Conjuntos de resultados

Nombre de 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 de la tabla. 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 ningún valor para esta columna.

Notas

Para obtener la máxima interoperatividad, el cliente de la puerta de enlace sólo 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 acerca del acceso de lectura o de escritura del usuario actual para una tabla específica. Por lo tanto, el acceso no está garantizado. Este conjunto de resultados no sólo 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 de servidor ACCESSIBLE_TABLES es Y en el conjunto de resultados de sp_server_info, sólo se devuelven las tablas a las que el usuario actual puede obtener acceso.

sp_tables es equivalente a SQLTables en ODBC. Los resultados devueltos se ordenan por TABLE_TYPE, TABLE_QUALIFIER, TABLE_OWNER y TABLE_NAME.

Permisos

Requiere el permiso SELECT en el esquema.

Ejemplos

A. Devolver 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 acerca de las tablas de AdventureWorks

El siguiente ejemplo devuelve información acerca de las tablas que pertenecen al esquema Person de la base de datos AdventureWorks.

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