0

動的に生成された 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 に置き換えます)、逆の方法を受け入れます。

4

0 に答える 0