.NETコードからSQLServerストアドプロシージャを分析して、返されるデータ/列(OUTPUTパラメーターではない)のメタデータを取得したいと思います。DataSet i VisualStudioにspをドラッグ/ドロップすると、列が自動的に生成されます。これは、私がテストしているコード生成に役立つ可能性があります。
プロシージャには、SELECT a、b FROM cなどの単純なselectステートメントが含まれており、aとbに関するメタデータを取得したいと思います。
.NETコードからSQLServerストアドプロシージャを分析して、返されるデータ/列(OUTPUTパラメーターではない)のメタデータを取得したいと思います。DataSet i VisualStudioにspをドラッグ/ドロップすると、列が自動的に生成されます。これは、私がテストしているコード生成に役立つ可能性があります。
プロシージャには、SELECT a、b FROM cなどの単純なselectステートメントが含まれており、aとbに関するメタデータを取得したいと思います。
使用SET FMTONLY ON
(および実行)できますが、これはちょっとした失敗です。すべてのシナリオ (ブランチなど) をカバーしているわけではなく、一部のコード (拡張ストアド プロシージャなど) を実行することもできます。
または、テーブル値関数 (udfs) を使用します。これらには、より豊富で形式的なメタデータがあります。
SQL Server 2012 / Denaliでは、を使用できますsys.dm_exec_describe_first_result_set_for_object
。
これにより、プロシージャの最初の結果セットに関する情報が返されます(この結果セットがすべてのコードパスによって返される限り)