動的に生成された SELECT ステートメント、つまり INSERT INTO ... SELECT ... からのいくつかの行を、テーブル値変数に INSERT する必要があります。
私はsp_executesqlを介してそれをやろうとしています。この入力されたテーブル値変数を sp_executesql から返す方法は?
DECLARE @Data as MyTableType
DECLARE @stmt as nvarchar(max)
SET @stmt = '
DECLARE @Data as MyTableType
INSERT INTO @Data VALUES (''test1'',''test2'') --in fact this will be INSERT INTO @Data SELECT ...
'
execute sp_executesql @stmt, N'@Data MyTableType output', @Data = @Data output
エラー:
The table variable "@Data" can not be passed to a stored procedure with the OUTPUT option.
ただし、@Data が入力として使用される場合 (READONLY を OUTPUT に置き換えます)、逆の方法を受け入れます。