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


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


727
2017-10-06 17:53


origen


Respuestas:


SQL Server 2005, 2008, 2012, 2014 o 2016:

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' 

1163
2017-10-06 18:00



SELECT sobjects.name
FROM sysobjects sobjects
WHERE sobjects.xtype = 'U'

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

  • AF: función de agregado (CLR)
  • C: restricción CHECK
  • D: restricción predeterminada o POR DEFECTO
  • F: restricción FOREIGN KEY
  • L: Registro
  • FN: función escalar
  • FS: función escalar de ensamblaje (CLR)
  • Función FT: Assembly (CLR) con valores de tabla
  • IF: función de tabla alineada
  • IT: tabla interna
  • P: procedimiento almacenado
  • PC: ensamblado (CLR) almacenado-procedimiento
  • PK: restricción PRIMARY KEY (tipo es K)
  • RF: procedimiento almacenado de filtro de replicación
  • S: tabla del sistema
  • SN: Sinónimo
  • SQ: cola de servicio
  • TA: disparador DML de ensamblaje (CLR)
  • TF: función de tabla
  • TR: Disparo SQL DML
  • TT: tipo de tabla
  • U: tabla de usuario
  • UQ: restricción ÚNICA (tipo es K)
  • V: Ver
  • X: procedimiento almacenado extendido

178
2017-10-06 18:02



SELECT * FROM INFORMATION_SCHEMA.TABLES 

o

SELECT * FROM Sys.Tables

65
2017-10-06 17:58



select * from sys.tables;

O

SELECT * FROM INFORMATION_SCHEMA.TABLES 

O

SELECT * FROM sysobjects WHERE xtype='U'

27
2018-05-03 13:09



USE YourDBName
GO 
SELECT *
FROM sys.Tables
GO

19
2017-10-03 11:23



exec sp_msforeachtable 'print ''?'''

9
2017-10-06 17:53



SELECT * FROM information_schema.tables
where TABLE_TYPE = 'BASE TABLE'

SQL Server 2012


9
2017-08-13 07:45