私はいくつかの連続するSELECT
ステートメントを実行するストアドプロシージャを作成しています。 ADO.NETを使用してこの手順を実行すると、DataTable
個のオブジェクトを含むDataSet
になります。これは、期待どおりに動作します。SQL Serverの結果セット内のテーブルに名前を割り当てる
DataSet
のテーブルの順序に依存していますが、ストアドプロシージャのSELECT
ステートメントの順序と一致するようになっていますが、実際にはこの順序では意味がありません。最終的に手順を維持しなければならない人は、結果の期待される順序を知る必要はなく、また、アプリケーションを維持する人が手順の中のステートメントの順序を知る必要があります。
私が知りたいのは、ストアドプロシージャそのものの中の各SELECT
ステートメントの結果に名前を付けることができますか?そして、これらがADO.NETを介して(うまくいけばシームレスに)注文の代わりにテーブルの名前で?
// populate DataSet with results from stored proc
DataSet ds = new DataSet();
dataAdapter.Fill(ds);
// now access one of the resulting DataTable via name
return ds.Tables["NamedResultFromTheProc"];
これを達成する方法はありますか?または、私はSELECT
ステートメントの順序に頼る必要があり、常にそのインデックスで目的のテーブルにアクセスする必要がありますか?
それは問題を解決するだろうが、それはその慣習に従う手続きを維持している人にまだオニスを置きます。 T-SQLで直接サポートされているより緊密なソリューションを望んでいましたが、そのような機能は存在しないようです。 –