存储过程sp
和表变量@tbl
Insert into @tbl
Exec sp
以上工作原理很好。
我们更改了存储过程输出并添加了其他输出列。上面的insert语句失败,存储过程的第二个版本。
以上SQL需要使用sp
版本1和sp
版本2
可以做些什么?
从sp
输出执行插入时,SQL Server不提供指定列名的选项
答案 0 :(得分:6)
唯一的方法是使用EXECUTE
WITH RESULT SETS
来确定从存储过程返回的确切列。这将为您提供指定要从存储过程输出插入表变量的列名的选项。
Insert into @tbl(col1, col2, col3) EXECUTE sp
WITH RESULT SETS (
(col1 INT,
col2 INT,
col3 nvarchar(50))
)
有关详细信息,请参阅here。