我需要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)。