¿Cómo puedo hacer el equivalente a "MOSTRAR TABLAS" en T-SQL?


31

Me gustaría hacer una búsqueda de tablas en mi base de datos SQL Server 2005 Express basada en el nombre de la tabla. En MySQL usaría SHOW TABLES LIKE "Datasheet%", pero en T-SQL esto arroja un error (intenta buscar un procedimiento almacenado SHOW y falla).

Esto es posible, y si es así, ¿cómo?

32

Esto le dará una lista de las tablas de la base de datos actual:

Select Table_name as "Table name" 
From Information_schema.Tables 
Where Table_type = 'BASE TABLE' and Objectproperty 
(Object_id(Table_name), 'IsMsShipped') = 0 

Algunos otros bits útiles de T-SQL se puede encontrar aquí: http://www.devx.com/tips/Tip/28529


5

Prueba esto:

select * from information_schema.columns 
where table_name = 'yourTableName' 

también buscan otras information_schema vistas.


7

probar este

SELECT * FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_NAME LIKE 'Datasheet%' 

2

intente seguir

SELECT table_name 
FROM information_schema.tables 
WHERE 
table_name LIKE 'Datasheet%' 

40

Sé que ya has aceptado una respuesta, pero ¿por qué no utilizar la más simple sp_tables?

sp_tables 'Database_Name' 
  0

¡Esta es una solución mucho mejor, de hecho puedo memorizarla! Gracias 26 jun. 152015-06-26 14:00:35


1

MS está puesta en fase lentamente métodos distintos de information_schema vistas. por lo tanto, para la compatibilidad con versiones anteriores, utilícelos.


3

Y, desde INFORMATION_SCHEMA is part of the SQL-92 standard, una buena cantidad de bases de datos lo admiten, incluyendo MySQL.


1

Práctica:

SELECT * FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_NAME LIKE '%' 

4

Prueba esto:

USE your_database 
go 
Sp_tables 
go 

0

Sé que esto es una vieja pregunta, pero yo sólo he encontrado con él.

Normalmente, diría que accedo a la vista de information_schema.tables, pero al descubrir que la PDO no puede acceder a esa base de datos desde un objeto de datos diferente que necesitaba encontrar de otra manera. Parece que sp_tables 'Database_Name es una mejor manera cuando se utiliza un usuario no privilegiado o PDO.