Получить имена таблиц из базы данных - PullRequest
13 голосов
/ 10 января 2011

Я просмотрел кучу веб-сайтов, и я не сталкивался ни с одним кодом или учебником, который прошел бы через особенности получения имен таблиц из одной базы данных.

Если у меня 4 базы данных и мне нужны имена всех таблиц в базе данных с именем mp21, какой запрос я могу использовать?

Ответы [ 7 ]

20 голосов
/ 10 января 2011
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'
9 голосов
/ 10 января 2011

В MySQL будут перечислены все базы данных:

show databases;

Для каждой из них вы можете сделать:

use <database_name>;

, а затем

show tables;
3 голосов
/ 10 января 2011

В SQL SERVER вы можете просто использовать -

select * from sys.tables
1 голос
/ 09 августа 2012

Я использовал этот запрос:

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

Это дает мне имя таблицы, а также sysDiagram (диаграмма базы данных, сгенерированная для этой базы данных)

1 голос
/ 10 января 2011
use mp21
SELECT name FROM dbo.sysobjects WHERE xtype = 'U' 
0 голосов
/ 19 июня 2017

Вот запрос MySQL, который вы задали.

SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='mp21'
0 голосов
/ 10 января 2011

если вы спрашиваете о .net коде, тогда вам нужно 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();
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...