如何将sp_executesql的OUTPUT参数设置为自定义表类型?

时间:2014-10-04 13:12:58

标签: sql-server tsql

我需要执行sp_executesql存储过程并从中返回custom table type

有可能吗?

我的代码是

DECLARE @sSQL AS VARCHAR(MAX);
DECLARE @tResult AS ttParamValues;

SET @sSQL = 'SELECT .....  add some params in the concatanation';

EXEC sp_executesql @sSQL, @tResultOUT=@tResult OUT;
SELECT * FROM @tResult;

我收到错误:

  

Msg 348,Level 16,State 1,Line 96
  表变量“@tResult”无法使用OUTPUT选项传递给存储过程。

我读到该表必须声明为READONLY,但无法弄清楚如何做到这一点。

1 个答案:

答案 0 :(得分:2)

不,这是不可能的。表时间参数为READONLY。由于无法修改该值,因此将参数指定为OUTPUT是没有意义的,返回的数据将始终是提供的值。

考虑将结果集作为数据类型XML返回,可以将其作为输出参数返回。