1

ストアド プロシージャのみを介してデータベースとやり取りする asp.net/c# アプリケーションがあります。私はこれをやろうとしましたが、運がありません。

(たとえば) を返すストアド プロシージャ "A" があります... recordID & Description (1:Apple; 2:Banana; 3: Tomato)

(たとえば) を返す別のストアド プロシージャ "B" があります... recordID & Description (1:Apple; 3: Tomato; 4:Grapes; 5:Oranges)

これらのストアド プロシージャを使用して、B から A を引いたものを取得する必要があります (つまり、アプリケーションで「ブドウ」、「オレンジ」を取得する必要があります。

2 つのストアド プロシージャを呼び出す方法を知っています。しかし、どうすればそれらの値を保存し、共通のレコードを削除できるでしょうか?

4

2 に答える 2

1

これら 2 つのストアド プロシージャが大きなデータセットを返すとは思わない場合は、ASP.NET コードでそれを実現できます。A の結果を 1 つのコレクション (データセットなど) に保存し、B の結果を別のコレクションに保存します。また、これら 2 つのコレクションを繰り返し処理して、重複レコードを排除できます。

ただし、これらのストアド プロシージャが大規模なデータセットをネットワーク経由で返し、送信すると予想される場合は、@Paddy が提案することを検討する必要があります。

于 2012-08-08T11:53:19.823 に答える
0

ここでの最善の方法は、最終結果を達成するための単一のプロシージャを作成することです。sp1 の正しいコードと単一の proc としての sp2 のコードを作成し、最後に必要な結果セットを計算します。

最初の 2 つのクエリを実行した後に taable1 と table2 がある場合は、次のようにします。

select * from table2
except
select * from table1
于 2012-08-08T12:44:38.803 に答える