SQL Server从sp_executesql返回表值变量

时间:2015-04-02 20:52:08

标签: sql-server table-valued-parameters dynamicquery sp-executesql

我需要INSERT到表值变量中的几行来自动态生成的SELECT语句,即INSERT INTO ... SELECT ...

我正在尝试通过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被用作输入(替换OUTPUT为READONLY)。

0 个答案:

没有答案