在 sql-server-2016 的输出表中保留来自 data.frame 的列名

J.R*_*.R. 5 sql-server r sql-server-2016

我有一张桌子sql-server-2016

CREATE TABLE #tempData (A int not null) 
 INSERT INTO #tempData   VALUES (0);
GO
Run Code Online (Sandbox Code Playgroud)

现在我可以调用我的 R 脚本,将表作为输入数据(包括列名):

EXECUTE  sp_execute_external_script
                @language = N'R'
              , @script = N'
                        df <- InputDataSet
                        df$B <- 1L'
              , @input_data_1 = N'SELECT * FROM #tempData'
              , @output_data_1_name = N'df'
WITH RESULT SETS (
    (A int not null, B int not null)
);
Run Code Online (Sandbox Code Playgroud)

返回:

A   B
0   1
Run Code Online (Sandbox Code Playgroud)

正如预期的那样。但是我可以在不指定名称{A,B} 的情况下执行相同操作吗,即它将data.frame直接使用来自 的名称。

小智 1

不幸的是,今天 BxlServer 在 SQL Server 中转换 R 的方式,您必须在结果集中设置变量和类型。