我有一个存储过程,它在while循环中包含以下sp_execute_external_script
命令,我将分别获得每个返回结果集的输出。我正在使用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(或#temptable)中,以便我能够继续处理这些数据。我已尝试过上述两种情况(例如INSERT INTO @variable EXEC "myStoredProcedure"
),但我收到以下错误
' SETS'附近的语法不正确。
如果删除INSERT INTO @variable
行,一切正常。所以,我想知道我是否可以使用这样的"技术"使用execute sp_execute_external_script
命令。
答案 0 :(得分:0)
INSERT..EXEC
, WITH RESULTS SETS
就会起作用。
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