¿Cómo obtengo una lista de todas las tablas en una base de datos usando TSQL?

Resuelto Ray asked hace 15 años • 20 respuestas

¿Cuál es la mejor manera de obtener los nombres de todas las tablas en una base de datos específica en SQL Server?

Ray avatar Oct 07 '08 00:10 Ray
Aceptado

Servidor SQL 2000, 2005, 2008, 2012, 2014, 2016, 2017 o 2019:

SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'

Para mostrar solo tablas de una base de datos en particular

SELECT TABLE_NAME 
FROM [<DATABASE_NAME>].INFORMATION_SCHEMA.TABLES 
WHERE TABLE_TYPE = 'BASE TABLE'

O,

SELECT TABLE_NAME 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_TYPE = 'BASE TABLE' 
    AND TABLE_CATALOG='dbName' --(for MySql, use: TABLE_SCHEMA='dbName' )

PD: Para SQL Server 2000:

SELECT * FROM sysobjects WHERE xtype='U' 
ScottStonehouse avatar Oct 06 '2008 18:10 ScottStonehouse
SELECT sobjects.name
FROM sysobjects sobjects
WHERE sobjects.xtype = 'U'

Aquí hay una lista de otros tipos de objetos que también puede buscar:

  • AF: función agregada (CLR)
  • C: VERIFICAR restricción
  • D: Restricción predeterminada o DEFAULT
  • F: restricción de CLAVE EXTRANJERA
  • L: registro
  • FN: función escalar
  • FS: función escalar de ensamblaje (CLR)
  • FT: función con valores de tabla de ensamblaje (CLR)
  • IF: función de tabla en línea
  • TI: Mesa interna
  • P: procedimiento almacenado
  • PC: procedimiento almacenado de ensamblaje (CLR)
  • PK: restricción de CLAVE PRIMARIA (el tipo es K)
  • RF: procedimiento almacenado del filtro de replicación
  • S: tabla del sistema
  • SN: Sinónimo
  • SQ: cola de servicio
  • TA: Activador DML de ensamblaje (CLR)
  • TF: función de tabla
  • TR: Activador SQL DML
  • TT: tipo de tabla
  • U: tabla de usuarios
  • UQ: restricción ÚNICA (el tipo es K)
  • V: Ver
  • X: procedimiento almacenado extendido
Micah avatar Oct 06 '2008 18:10 Micah
SELECT * FROM INFORMATION_SCHEMA.TABLES 

O

SELECT * FROM Sys.Tables
StingyJack avatar Oct 06 '2008 17:10 StingyJack