2011-01-10 17 views
13

Przeszukałem kilka stron internetowych i nie natknąłem się na żaden kod lub samouczek, który przeszedł specyfikację uzyskiwania nazw tabel z jednej bazy danych.Pobierz nazwy tabel z bazy danych

Zakładając, że mam 4 bazy danych i chcę nazwy wszystkich tabel w bazie danych o nazwie mp21, jakie zapytanie mogę użyć?

+1

Jakiego smaku używasz RDBMS - SQL Server, MySQL lub innego ..? – AdaTheDev

+0

Ponadto, jakiego języka/ramy programowania używasz? .NET, Java, COBOL ...? A może chcesz to zrobić używając tylko SQL? – sleske

Odpowiedz

19
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE' 
+3

To działa. Jedyne co musiałem zrobić to dodać "AND TABLE_SCHEMA =" mp21 "" do końca i działa. Dzięki. –

+0

Cieszę się, że mogłem pomóc –

9

W MySQL to będą wymienione wszystkie bazy danych:

show databases; 

Dla każdego z nich można zrobić:

use <database_name>; 

a następnie

show tables; 
+0

USE mp21 SHOW TABLES też nie działa. Również inny kod, który wypróbowałem przed ręką. –

1
use mp21 
SELECT name FROM dbo.sysobjects WHERE xtype = 'U' 
+0

Próbowałem tego wcześniej. Nie jestem pewien dlaczego, ale sys nie działa z moimi zapytaniami. –

+0

Z jakiego systemu baz danych korzystasz, sqlserver? –

3

W SQL Server, można po prostu użyć -

select * from sys.tables 
+0

Nie mam pojęcia dlaczego, ale to nie działa w moim SQL. Jestem pewien, że to najnowsza wersja, ale ciągle dostaję błędy. W każdym razie dzięki. –

+1

@Syed Abdul Rahman - Ta kwerenda działa w SQL Server, a nie w mySql. Zakładam, że używasz MySql, a więc to nie zadziała. Ponieważ nie wspomniałeś o swoim RDBMS, wysłałem ci zapytanie do serwera SQL. W każdym razie masz to, czego chciałeś. –

+0

Ach, rozumiem. Dzięki za wyczyszczenie tego. –

0

jeśli prosisz o kodzie .net to trzeba SMO:

using Microsoft.SqlServer.Management.Smo; 
using Microsoft.SqlServer.Management.Common; 



public static List<Table> GetTables(string connection, string databaseName) 
     { 
      if (String.IsNullOrEmpty(connection)) 
       throw new ArgumentException("connection is null or empty.", "connection"); 

      Server srv = getServer(connection); 
      return srv.Databases[databaseName].Tables.Cast<Table>().ToList(); 
     } 
1

użyłem tej kwerendy:

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

Daje mi nazwę tabeli, a także sysDiagram (diagram bazy danych wygenerowany dla tej bazy danych)

0

Oto zapytanie MySQL, o które prosiłeś.

SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='mp21' 
Powiązane problemy