我需要执行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
,但无法弄清楚如何做到这一点。
答案 0 :(得分:2)
不,这是不可能的。表时间参数为READONLY
。由于无法修改该值,因此将参数指定为OUTPUT
是没有意义的,返回的数据将始终是提供的值。
考虑将结果集作为数据类型XML返回,可以将其作为输出参数返回。