tipos resueltos ejercicios ejemplos datos consultas complejas comandos sql sql-server

resueltos - sql server



¿Obtener todos los nombres de tabla de una base de datos en particular por consulta SQL? (14)

A partir de la respuesta de Michael Baylon, necesitaba una lista que también incluyera información de esquema y así es como modifiqué su consulta.

SELECT TABLE_SCHEMA + ''.'' + TABLE_NAME as ''Schema.Table'' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = ''BASE TABLE'' AND TABLE_CATALOG = ''dbName'' ORDER BY TABLE_SCHEMA, TABLE_NAME

Estoy trabajando en una aplicación que puede manejar múltiples servidores de bases de datos como "MySQL" y "MS SQL Server".

Quiero obtener los nombres de las tablas de una base de datos en particular mediante una consulta general que sea adecuada para todos los tipos de bases de datos. He intentado lo siguiente:

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

Pero está dando nombres de tablas de todas las bases de datos de un servidor particular, pero quiero obtener nombres de tablas de la base de datos seleccionada solamente. ¿Cómo puedo restringir esta consulta para obtener tablas de una base de datos en particular?


En mysql, usa:

SHOW TABLES;

Después de seleccionar el DB con:

USE db_name


La siguiente consulta seleccionará todas las Tables en la base de datos llamada DBName :

USE DBName GO SELECT * FROM sys.Tables GO


No vi esta respuesta pero hey esto es lo que hago:

SELECT name FROM databaseName.sys.Tables;


Para Mysql puedes hacer simple. MOSTRAR TABLAS;


Probablemente debido a la forma en que diferentes dbms de sql tratan con esquemas.

Intenta lo siguiente

Para SQL Server:

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = ''BASE TABLE'' AND TABLE_CATALOG=''dbName''

Para MySQL:

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = ''BASE TABLE'' AND TABLE_SCHEMA=''dbName''

Para Oracle, creo que el equivalente sería usar DBA_TABLES .


Robado desde here :

USE YOURDBNAME GO SELECT * FROM sys.Tables GO


Si oráculo es:

select * from user_tables

Esto es, si solo desea que los objetos que son propiedad del user/schema registrado, de lo contrario, puede usar all_tables o dba_tables que incluye tablas del sistema.


Simplemente coloque el DATABASE NAME frente a INFORMATION_SCHEMA.TABLES :

select table_name from YOUR_DATABASE.INFORMATION_SCHEMA.TABLES where TABLE_TYPE = ''BASE TABLE''


ACTUALIZACIÓN PARA LA VERSIÓN MÁS RECIENTE DEL SERVIDOR MSSQL (17.7)

SELECT name FROM sys.Tables WHERE type_desc = ''USER_TABLE''

O SELECT * para obtener todas las columnas.


Exec sp_MSforeachtable ''Select ''''?''''''


USE DBName; SELECT * FROM sys.Tables;

Podemos negociar sin GO en lugar de usted puede usar punto ; coma ; .


USE dbName; SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE (TABLE_SCHEMA = ''dbName'' OR TABLE_SCHEMA = ''schemaName'') ORDER BY TABLE_NAME

Si está trabajando con múltiples esquemas en un servidor MS SQL, entonces SELECCIONAR TABLE_NAME sin seleccionar simultáneamente TABLE_SCHEMA podría ser de beneficio limitado, por lo que asumí que estamos interesados ​​en las tablas que pertenecen a un esquema conocido al usar MS SQL Server.

He probado la consulta anterior con SQL Server Management Studio usando una base de datos SQL Server mía y con MySQL Workbench usando una base de datos MySQL, y en ambos casos da los nombres de las tablas.

La consulta incluye dos consultas diferentes de Michael Baylon en una que luego puede ejecutarse en cualquier tipo de base de datos. La primera parte de la cláusula WHERE funciona en las bases de datos MySQL y la segunda parte (después del OR) funciona en las bases de datos MS SQL Server. Es feo y lógicamente un poco incorrecto, ya que supone que no hay ningún esquema no deseado con el mismo nombre que la base de datos. Esto podría ayudar a alguien que esté buscando una sola consulta que pueda ejecutarse en cualquiera de los dos servidores de bases de datos.


select * from sys.tables order by schema_id --comments: order by ''schema_id'' to get the ''tables'' in ''object explorer order'' go