Czy istnieje polecenie SQL, które wyświetli listę wszystkich tabel w bazie danych i które jest niezależne od operatora (działa na MSSQLServer, Oracle, MySQL)?Wyświetlanie wszystkich tabel w bazie danych
Odpowiedz
Najbliższą opcją jest zapytanie do tabeli INFORMATION_SCHEMA
.
SELECT *
FROM INFORMATION_SCHEMA.Tables
WHERE table_schema = 'mydatabase';
Numer INFORMATION_SCHEMA
jest częścią standardowego kodu SQL, ale nie wszyscy dostawcy go obsługują. O ile mi wiadomo, tylko dostawców RDBMS, które go obsługują to:
- MySQL
- PostgreSQL
- Microsoft SQL Server 2000/2005/2008
Niektóre marki bazy danych, na przykład Oracle, IBM DB2, Firebird, Derby itp. Mają podobne widoki "katalogu", które udostępniają interfejs, w którym można wysyłać zapytania do metadanych w systemie. Jednak nazwy widoków, kolumn, które zawierają i ich relacji nie pasują do standardu ANSI SQL dla INFORMATION_SCHEMA
. Innymi słowy, podobne informacje są dostępne, ale zapytanie, które można wykorzystać do uzyskania tych informacji, jest inne.
(przypis: widoki Katalog w IBM DB2 UDB dla systemu i różnią się od poglądów katalog w IBM DB2 UDB for Windows/* nix - Tyle Universalu w UDB)
Niektóre inne marki (np. SQLite) w ogóle nie oferują żadnego możliwego do zaspokojenia interfejsu dla metadanych.
Nie. Wszyscy kochają robić to na swój własny sposób.
Nie, standard SQL nie jest związany z nazwami tabel (jeśli w ogóle), więc musisz wykonać różne instrukcje (zazwyczaj SELECT
na specjalnie nazwanych tabelach) w zależności od silnika SQL do czynienia z.
jak Bill Karwin prawidłowo wskazuje obecnie, INFORMATION_SCHEMA stanowi część standardu SQL-92. Niektórzy dostawcy mogą tego nie obsługiwać, ale jest to część standardu. –
Jeśli są OK, z zastosowaniem podejścia non-SQL i masz sterownik ODBC dla bazy danych i realizuje SQLTables punktu wejścia, ty ewentualnie może uzyskać informacje, które chcesz!
pjjH
dane na API w: http://msdn.microsoft.com/en-us/library/ms711831.aspx
- 1. Lista wszystkich tabel w bazie danych
- 2. Lista wszystkich tabel w bazie danych
- 3. Domyślne szyfrowanie AES dla wszystkich tabel w bazie danych Mysql
- 4. Dołącz 3 tabel w bazie danych SQLite
- 5. Psql lista wszystkich tabel
- 6. Generowanie skryptu wszystkich indeksów w bazie danych
- 7. Zmiana właściciela wszystkich obiektów w bazie danych
- 8. Drzewo wszystkich zależności w bazie danych SQL Server
- 9. Zapytanie SQL umożliwiające znalezienie wszystkich tabel w bazie danych z kolumną o określonej nazwie
- 10. Serwer SQL - tworzenie pojedynczego wyzwalacza działającego dla WSZYSTKICH tabel w bazie danych
- 11. Jak usunąć wszystkie wiersze ze wszystkich tabel w bazie danych programu SQL Server?
- 12. Czy dodanie maski do wszystkich tabel w bazie danych jest przydatne?
- 13. Analiza automatyczna nie działa dla wszystkich tabel w bazie danych Postgres 9.2
- 14. Jak dodać prefiks wszystkich tabel w mysql
- 15. Jak uzyskać listę wszystkich tabel w dwóch różnych bazach danych
- 16. Ile rekordów/tabel mogę mieć w bazie danych 1 gb?
- 17. Tworzenie tabel w bazie danych sqlite na Androidzie
- 18. Konwencje nazewnictwa dla tabel i kolumn w bazie danych
- 19. Przesyłanie zdjęć, zmiana rozmiaru, przechowywanie w bazie danych, wyświetlanie
- 20. Wybieranie wszystkich tabel zawierających określone kolumny
- 21. ALTER wszystkie tabele w bazie danych
- 22. Zliczanie wszystkich tabel w schemacie
- 23. Lista SQL wszystkich zdefiniowanych przez użytkownika funkcji w bazie danych
- 24. Dokładna liczba wszystkich wierszy w bazie danych MySQL
- 25. Czy można wyświetlić listę wszystkich kluczy obcych w bazie danych?
- 26. MySQL typ danych w bazie
- 27. Jak zatrzymać wyświetlanie tabel w przewodniku Enterprise?
- 28. W MySQL, jak mogę wsadowo zmieniać nazwy tabel w bazie danych?
- 29. Wyjaśnienie Oracle MERGE w bazie danych H2
- 30. Aktualizacja bazy danych Dot Net Entity Framework nie powoduje utworzenia tabel w bazie danych mysql.
Już miałem odpowiedzieć i powiedzieć "Nie, absolutnie nie". Twoja odpowiedź mnie uratowała. Dziś nauczyłem się czegoś nowego :) – wcm
Dodałem linki do dokumentów dla INFORMATION_SCHEMA w odpowiednich markach RDBMS, które go obsługują. –