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

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

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

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

3 ответа

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

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

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

Хотя вы можете использовать запросы к таблицам метаданных SQL Server, самый простой способ получить доступ к этой информации - использовать Sql Server Management Objects (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);       
        }
    }
Другие вопросы по тегам