N 行を返すストアド プロシージャを呼び出し、処理の一環として結果を一時テーブルに挿入する必要がある関数に取り組んでいます。
ストアド プロシージャで EXEC を呼び出すと問題なく動作します: http://sqlfiddle.com/#!3/ed11a/16
では、EXEC の結果をテーブル変数に挿入するとエラーが発生するのはなぜですか: http://sqlfiddle.com/#!3/ed11a/18
私が得ているエラーは次のとおりです。Invalid use of side-effecting or time-dependent operator in 'INSERT EXEC' within a function.
このエラーは通常、関数に対してローカルではない値を操作しようとしたときに生成されることを理解していますが、挿入はテーブル変数に対して行われるため、これは問題になりません。