¿Hay un comando SQL que enumerará todas las tablas en una base de datos y que es independiente del proveedor (funciona en MSSQLServer, Oracle, MySQL)?Listar todas las tablas en una base de datos
Respuesta
La opción más cercana es consultar el INFORMATION_SCHEMA
para las tablas.
SELECT *
FROM INFORMATION_SCHEMA.Tables
WHERE table_schema = 'mydatabase';
El INFORMATION_SCHEMA
es parte del estándar SQL, pero no todos los vendedores de apoyarlo. Por lo que yo sé, los únicos proveedores de RDBMS que lo apoyan son:
- MySQL
- PostgreSQL
- Microsoft SQL Server 2000/2005/2008
Algunas marcas de base de datos, por ejemplo, Oracle, IBM DB2, Firebird, Derby, etc. tienen vistas de "catálogo" similares que le brindan una interfaz donde puede consultar metadatos en el sistema. Pero los nombres de las vistas, las columnas que contienen y sus relaciones no coinciden con el estándar ANSI SQL para INFORMATION_SCHEMA
. En otras palabras, hay información similar disponible, pero la consulta que usaría para obtener esa información es diferente.
(nota: las vistas de catálogo en IBM DB2 UDB para System i son diferentes de las vistas de catálogo en IBM DB2 UDB para Windows/* NIX - tanto por el universal en UDB)
Algunos otras marcas (por ejemplo, SQLite) no ofrecen ninguna interfaz consultable para metadatos en absoluto.
No. A todos les encanta hacerlo a su manera.
No, el estándar SQL no restringe dónde se enumeran los nombres de la tabla (si es que lo hace), por lo que tendrá que realizar diferentes declaraciones (típicamente SELECT
en tablas especialmente nombradas) dependiendo del motor SQL que esté Tratando con.
Como Bill Karwin señala correctamente, el INFORMATION_SCHEMA es parte del estándar SQL-92. Algunos proveedores pueden no admitirlo, pero es parte del estándar. –
Si estás bien con el uso de un enfoque no-SQL y tiene un controlador ODBC para la base de datos y que implementa el SQLTables de punto de entrada, que posiblemente puede obtener la información que desea!
PJJH
detalles sobre la API en: http://msdn.microsoft.com/en-us/library/ms711831.aspx
- 1. ¿Cómo puedo listar todas las tablas en una base de datos con Squirrel SQL?
- 2. Listar todas las tablas en postgresql information_schema
- 3. ¿podemos listar todas las tablas en la base de datos msaccess usando sql?
- 4. Seleccionar de todas las tablas
- 5. Lista de todas las tablas en la base de datos
- 6. Renombrar todas las tablas en la base de datos
- 7. Obtenga todas las tablas y todas las columnas de una base de datos odbc
- 8. ¿Cómo colocar todas las tablas en la base de datos sin soltar la base de datos?
- 9. ¿Es útil agregar una máscara de bits a todas las tablas en una base de datos?
- 10. Buscar todas las columnas de un cierto tipo en todas las tablas en una base de datos SQL Server
- 11. AppleScript - Listar todas las fuentes
- 12. Reparar todas las tablas de una vez
- 13. Cómo generar DDL para todas las tablas en una base de datos en MySQL
- 14. Recuperar una lista de todas las tablas en la base de datos
- 15. ¿Cómo se truncan todas las tablas en una base de datos utilizando TSQL?
- 16. enumere todas las tablas en una base de datos con MySQLi
- 17. ¿Cómo ver todas las tablas en una base de datos HSQLDB?
- 18. ¿Cómo eliminar todas las tablas en una base de datos MySQL?
- 19. Base de datos por aplicación VS Una gran base de datos para todas las aplicaciones
- 20. Eliminar datos de todas las tablas en MYSQL
- 21. ¿Listar todas las funciones integradas en javascript?
- 22. Listar todas las carpetas en el directorio
- 23. Psql enumera todas las tablas
- 24. actualización de todas las tablas de una base de datos MySQL
- 25. MySQL OPTIMIZE todas las tablas?
- 26. Consulta para listar todas las particiones en Datomic
- 27. ¿Cómo puedo crear una nueva base de datos SQLite, con todas las tablas, sobre la marcha?
- 28. ¿Listar todas las clases base en una jerarquía de clase dada?
- 29. Número total de campos en todas las tablas de la base de datos
- 30. Cómo colocar todas las tablas de una base de datos en SQL Server 2005 en una declaración, excepto una tabla
Estaba a punto de responder y decir "No, absolutamente no". Tu respuesta me salvó. Aprendí algo nuevo hoy :) – wcm
Agregué enlaces a los documentos para INFORMATION_SCHEMA en las respectivas marcas RDBMS que lo soportan. –