Получение схемы и объектов базы данных 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);
}
}