Esiste un comando SQL che elencherà tutte le tabelle in un database e che è indipendente dal provider (funziona su MSSQLServer, Oracle, MySQL)?Elenco di tutte le tabelle in un database
risposta
L'opzione più vicina è richiedere il INFORMATION_SCHEMA
per le tabelle.
SELECT *
FROM INFORMATION_SCHEMA.Tables
WHERE table_schema = 'mydatabase';
La INFORMATION_SCHEMA
fa parte di SQL standard, ma non tutti i produttori lo supportano. Per quanto ne so, gli unici fornitori RDBMS che lo supportano sono:
- MySQL
- PostgreSQL
- Microsoft SQL Server 2000/2005/2008
Alcune marche di base di dati, per esempio Oracle, IBM DB2, Firebird, Derby, ecc. Hanno viste "catalogo" simili che forniscono un'interfaccia in cui è possibile interrogare i metadati sul sistema. Ma i nomi delle viste, le colonne che contengono e le loro relazioni non corrispondono allo standard ANSI SQL per INFORMATION_SCHEMA
. In altre parole, sono disponibili informazioni simili, ma la query che utilizzeresti per ottenere tali informazioni è diversa.
(nota: il viste del catalogo in IBM DB2 UDB per System i sono diverse da quelle viste del catalogo in IBM DB2 UDB per Windows/* NIX - tanto per il universale a UDB)
Alcuni altri marchi (ad es. SQLite) non offrono alcuna interfaccia queriesble per i metadati.
No. Tutti amano farlo a modo loro.
No, lo standard SQL non vincola dove vengono elencati i nomi delle tabelle (se non del tutto), quindi dovrai eseguire istruzioni diverse (in genere le istruzioni SELECT
su tabelle con nome specifico) in base al motore SQL che stai trattare con.
Come Bill Karwin rileva correttamente, l'INFORMATION_SCHEMA è parte dello standard SQL-92. Alcuni fornitori potrebbero non supportarlo, ma fa parte dello standard. –
Se siete OK con l'utilizzo di un approccio non-SQL e si dispone di un driver ODBC per il database e implementa l'SQLTables entry-point, si possibilmente potrebbe ottenere le informazioni desiderate!
pjjH
dettagli sul API a: http://msdn.microsoft.com/en-us/library/ms711831.aspx
- 1. elenco di tutte le tabelle nel database
- 2. Elenco di tutte le tabelle nel database
- 3. Recupera un elenco di tutte le tabelle nel database
- 4. Alter tutte le tabelle nel database
- 5. Come eliminare tutte le tabelle in un database MySQL?
- 6. Come visualizzare tutte le tabelle in un database HSQLDB?
- 7. elenca tutte le tabelle in un database con MySQLi
- 8. Psql elenca tutte le tabelle
- 9. Trova tutte le colonne di un determinato tipo in tutte le tabelle in un database SQL Server
- 10. Ottieni tutte le tabelle e tutte le colonne da un database odbc
- 11. Modificare le regole di confronto di tutte le colonne di tutte le tabelle in SQL Server
- 12. Ottieni un elenco di tutte le funzioni e le procedure in un database Oracle
- 13. Doctrine crea automaticamente tutte le tabelle del database?
- 14. Sqlite: come si ripristinano tutte le tabelle del database?
- 15. Come bloccare tutte le tabelle in un mysql db?
- 16. Ottenere un elenco di tutte le applicazioni
- 17. ORMLite ripristina tutte le tabelle
- 18. Elenco di tabelle non vuote nel database MySQL
- 19. Come modificare tutte le tabelle nel mio database in un set di caratteri UTF8?
- 20. Eliminazione di tutte le tabelle/sequenze utente in Oracle
- 21. Cerca tutte le tabelle, tutte le colonne per un valore specifico SQL Server
- 22. Linq: Ottieni un elenco di tutte le tabelle all'interno di DataContext
- 23. Elenco di tutte le raccolte in un database mongo all'interno di uno script nodejs
- 24. DbContext di EF contiene tutte le tabelle?
- 25. Elenco di tutte le variabili in un file in bash
- 26. Imposta IDENTITY_INSERT OFF per tutte le tabelle
- 27. È utile aggiungere una maschera bit a tutte le tabelle in un database?
- 28. Crittografia AES Mysql predefinita per tutte le tabelle in un database
- 29. Come posso elencare tutte le tabelle in un database con Squirrel SQL?
- 30. Elenco di tutte le tabelle attualmente pubblicate per la replica MS-SQL
Stavo per rispondere e dire "No, assolutamente no". La tua risposta mi ha salvato. Ho imparato qualcosa di nuovo oggi :) – wcm
Ho aggiunto collegamenti ai documenti per INFORMATION_SCHEMA nei rispettivi marchi RDBMS che lo supportano. –