Sql server 如何在执行sp_execute_external_script命令时将多个结果集放入variable或temp表中?
我有一个存储过程,它将下面的Sql server 如何在执行sp_execute_external_script命令时将多个结果集放入variable或temp表中?,sql-server,r,sql-server-2008,stored-procedures,sql-server-2016,Sql Server,R,Sql Server 2008,Stored Procedures,Sql Server 2016,我有一个存储过程,它将下面的sp\u execute\u external\u script命令封装在while循环中,我将分别获得每个返回的结果集作为输出。我正在使用SQL Server 2016来完成所有这些工作 EXECUTE sp_execute_external_script @language = N'R',@script = N' some R code here ' ,@input_data_1 = N' SELECT * FROM #TempTable;' WITH
sp\u execute\u external\u script
命令封装在while循环中,我将分别获得每个返回的结果集作为输出。我正在使用SQL Server 2016来完成所有这些工作
EXECUTE sp_execute_external_script @language = N'R',@script = N' some R code here ' ,@input_data_1 = N' SELECT * FROM #TempTable;'
WITH
RESULT
SETS
(
(
[filename] NVARCHAR(MAX),
[mobile_fraction] NVARCHAR(MAX),
[t_half] NVARCHAR(MAX),
[r_square] NVARCHAR(MAX)
)
);
我希望将结果集的所有返回数据存储到@variable(或#tentable)中,以便能够继续处理这些数据。我已经尝试了以上两种情况(例如插入@variable EXEC“myStoredProcedure”
),但是我得到了以下错误
“集合”附近的语法不正确
如果我删除插入@variable的
行,一切正常。所以,我想知道我是否可以在execute sp\u execute\u external\u script
命令中使用这种“技术” INSERT..EXEC
如果删除带有结果集的
,只要输出模式与表模式匹配,就可以工作
DECLARE @Temp TABLE
(
Test NVARCHAR(MAX)
)
INSERT INTO @Temp
EXECUTE sp_execute_external_script @language = N'R',@script = N'OutputDataSet <- as.data.frame(c("test"))' ,@input_data_1 = N''
SELECT * FROM @TEMP
DECLARE@Temp表
(
测试NVARCHAR(最大值)
)
插入到@Temp中
执行sp\u EXECUTE\u external\u script@language=N'R',@script=N'OutputDataSet