6

我有一张桌子sql-server-2016

CREATE TABLE #tempData (A int not null) 
 INSERT INTO #tempData   VALUES (0);
GO

现在我可以调用我的 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)
);

返回:

A   B
0   1

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

4

2 回答 2

1

不幸的是,如今 BxlServer 如何在 SQL Server 中翻译 R,您必须在 RESULTS SET 中设置变量和类型。

于 2017-04-03T23:57:12.497 回答
0

根据当前文档(https://msdn.microsoft.com/en-us/library/mt604368.aspx),这似乎是不可能的。

WITH RESULTS SETS clause is mandatory if you are returning a result set from R . The specified column data types need to match the types supported in R (bit, int, float, datetime, varchar)
于 2015-12-30T04:58:26.407 回答