Получение схемы и объектов базы данных SQL Server и отражение в приложении .Net

Как проще всего отразить схему базы данных SQL Server со всеми ее объектами в приложении .Net?

По сути, я хотел бы, чтобы мое приложение сканировало схему базы данных и представляло мне все таблицы и другие объекты. Кроме того, я должен иметь возможность исследовать все столбцы таблицы и их свойства (тип, ограничения и т. д.).

Я планирую использовать блок приложения для доступа к данным для доступа к данным. Будет ли он также соответствовать вышеуказанному требованию?


person Kabeer    schedule 01.04.2011    source источник


Ответы (3)


Вы можете использовать любой метод доступа к данным, который вы хотите — вам просто нужно запускать правильные запросы к базе данных. В этой статье есть хороший пример того, что вам нужно.

person cbp    schedule 01.04.2011

SQL Server предоставляет некоторые системные представления, которые можно использовать, например. sys.tables перечисляет все таблицы, sys.columns все столбцы и т. д.

В MSDN есть часто задаваемые вопросы.

person Anders Abel    schedule 01.04.2011

Хотя вы можете использовать запросы к таблицам метаданных SQL Server, самый простой способ получить доступ к этой информации — использовать Объекты управления сервером Sql (SMO).

Чтобы использовать этот пример, обратитесь к Microsoft.SqlServer.ConnectionInfo, Microsoft.SqlServer.Management.Sdk.Sfc и Microsoft.SqlServer.Smo.

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

   var sqlConnection = new SqlConnection(@"Data Source=(local);Integrated Security=SSPI");
    var server = new Server(new ServerConnection(sqlConnection));

    foreach (Database database in server.Databases)
    {
        foreach (Table table in database.Tables)
        {
            Console.WriteLine("{0}: {1}", database.Name, table.Name);       
        }
    }
person Filip De Vos    schedule 01.04.2011