SQL Serverデータベーススキーマとそのすべてのオブジェクトを.Netアプリケーションに反映する最も簡単な方法は何ですか?
基本的に、アプリケーションでデータベーススキーマをスキャンし、すべてのテーブルとその他のオブジェクトを表示したいと思います。さらに、すべてのテーブル列とそのプロパティ(タイプ、制約など)も調べることができるはずです。
データアクセスのニーズにデータアクセスアプリケーションブロックを使用することを計画しています。上記の要件も満たしますか?
SQL Serverデータベーススキーマとそのすべてのオブジェクトを.Netアプリケーションに反映する最も簡単な方法は何ですか?
基本的に、アプリケーションでデータベーススキーマをスキャンし、すべてのテーブルとその他のオブジェクトを表示したいと思います。さらに、すべてのテーブル列とそのプロパティ(タイプ、制約など)も調べることができるはずです。
データアクセスのニーズにデータアクセスアプリケーションブロックを使用することを計画しています。上記の要件も満たしますか?
任意のデータアクセス方法を使用できます。データベースに対して適切なクエリを実行するだけです。この記事はあなたが望むものの良い例を持っているようです。
SQL Server は、使用できるいくつかのシステム ビューを提供します。たとえばsys.tables
、すべてのテーブル、sys.columns
すべての列などを一覧表示します。
MSDN にはFAQがあります。
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);
}
}