0

そのため、私は、ユーザーがデータを処理するために使用する独自の「ワークリスト」を作成できるようにするツールを作成するという任務を負っています。私たちのアプリでは、これらのワークリストはSQLビューによって駆動されるため、今のところ、私のプログラムはユーザーの入力に基づいてデータベースにビューを動的に作成する必要があります。私はこれが好きではありませんが、今のところ、これを最大限に活用して、これを実行するための最良の方法をブレインストーミングする必要があります。

基本的に、私が作成するすべてのビューには同様のスケルトンがあり、常にプルされるいくつかの列と、常に発生するいくつかの結合があります。ユーザーの入力に基づいて、追加のSELECT列と、追加された表示列にアクセスするために必要な場合は追加の結合を追加できます。

だから基本的に今私のコードはこのように見えます...

string SQL = string.Format(@"CREATE VIEW {0}
                             AS
                             SELECT
                             Foo.A,
                             Bar.B,
                             {1}
                             FROM
                             Table
                             INNER JOIN Foo on Foo.ID = Table.FooID
                             INNER JOIN Bar on Bar.ID = Table.BarID
                             {2}", viewName, displayNames, extraJoins);
Database.ExecuteNonQuery(SQL);

明らかな理由で、私はこれが本当に好きではありません。ただし、ADOを使用してビューを作成するためのパラメーター化されたクエリに相当するものを見つけることができないようです。これを行うためのストアドプロシージャを作成することもできますが、それでもだらしのないようです。私を胃に病気にさせないこのようなことをするための合理的な方法はありますか?また、MS SQLを使用しており、2005年までサポートする必要があります。

4

1 に答える 1

1

SELECTDML( / UPDATE/ INSERT/などDELETE)とは対照的に、DDLのパラメーターはサポートされていません(ここも参照してください)。つまり、基本的には、動的SQLを使用してストアドプロシージャ内に非表示にするか、説明した方法で実行します...

于 2012-05-30T18:33:03.867 に答える