0

例: ストア プロシージャは次のとおりです。

IF EXISTS (
    SELECT 'x' 
    FROM billable_acct_payout (NOLOCK) 
    WHERE i_billable_acct_id = @i_billable_acct_id
)
    BEGIN
        SELECT 'PayoutInfo'          as 'TableName'
            ,ba.i_billable_acct_id   as 'BillableAcctId' 
...

上記と同様に、このストア プロシージャを呼び出して、次のような C# コードで返されたデータを受け取ると、次のようになります。

DataSet ds = new Dataset();
DataAdapter da...
da.Fill(ds);

これで、「IF EXISTS」の最初の「選択」はデータセットに返されないことがわかりましたが、2 番目の「選択」は返されます。

問題は、ストアプロシージャの「選択」がデータセットに戻るかどうかを知る方法ですか?

4

2 に答える 2

0

データを取得した場合、ストアド プロシージャはデータセットにデータを返しました。

しかし、一般的には、そのようなストアド プロシージャを変更することを検討する必要があります。mssql 2000 でパフォーマンス テストを行ったところ、結果のほとんどはまだ有効であると思います。

たとえば、ストアド プロシージャでその結果をテーブルに書き込み、これらの結果テーブルにクエリを実行する方がはるかに高速でした。ストアド プロシージャを変更し、パラメーターとして一意のキーを追加し、これらのパラメーターを使用して結果テーブルで結果を見つけることをお勧めします。

于 2013-08-14T07:43:32.523 に答える