2

テーブル、ビュー、キー、インデックス、トリガーなどを含む SQL データベース スキーマを生成するプログラムを作成しようとしています。

CREATE TABLE TableName(....) ....
CREATE VIEW ViewName(...) ....

SQL Server Management Studio がそれを行うため (スクリプト コマンドの生成)、これが可能であることはわかっています。しかし、それはどのように行うのですか?

更新:権限について言及するのを忘れていました:私はデータベースの所有者です(ほとんどの場合)が、システム管理者ではありません。違いはありますか?

4

4 に答える 4

3

SQL Serverのみを対象としている場合、SMOは非常に強力です。これはSQLServerManagement Studioが使用するライブラリであり、データベースオブジェクトをスクリプトに変換するためのクラスが含まれています。

ここでのスクリプトの例は、開始するのに最適な場所です。

于 2012-10-21T13:46:39.000 に答える
1

本当に生成することを意味する場合は、本質的にデータベースをブーストラップするEntity Framework / Code Firstのアプローチ(テーブルなど)を検討することをお勧めします。

于 2012-10-21T13:45:44.383 に答える
1

テーブルのリスト:

foreach (DataRow row in schemaTbl.Rows)
{
listBox.Items.Add(row["TABLE_NAME"]);
}

特定のテーブルの列

object[] objArrRestrict;
objArrRestrict = new object[] {null, null, "Customers", null};
DataTable schemaCols;
schemaCols = con.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, objArrRestrict);
//List the schema info for the selected table
foreach (DataRow row in schemaCols.Rows)
{
listBox.Items.Add(row["COLUMN_NAME"]);
}
于 2012-10-21T13:37:23.223 に答える
1

データベース構造のクエリは、SQL サーバーのバージョンによって異なります。

2008 R2 のページはこちらで、TABLESページにリンクしています。このページはsys.tablesページにリンクしており、 sys.objectsページにリンクしています。

sys.objects ページには、関連するサンプルがあります。これはテーブルを取得するだけです。列、トリガー、ビューなどの他のシステム オブジェクトがあります。

于 2012-10-21T13:41:27.587 に答える