在 sql-server-2016 的输出 table 中保留来自 data.frame 的列名
Keep column names from a data.frame in an output table in sql-server-2016
我在sql-server-2016
中有一个table:
CREATE TABLE #tempData (A int not null)
INSERT INTO #tempData VALUES (0);
GO
现在我可以调用我的 R 脚本,将 table 作为输入数据(包括列名):
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
中的名称。
根据当前文档 (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)
不幸的是,BxlServer 如何在今天的 SQL 服务器中翻译 R,您必须设置变量并输入 RESULTS SET。
我在sql-server-2016
中有一个table:
CREATE TABLE #tempData (A int not null)
INSERT INTO #tempData VALUES (0);
GO
现在我可以调用我的 R 脚本,将 table 作为输入数据(包括列名):
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
中的名称。
根据当前文档 (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)
不幸的是,BxlServer 如何在今天的 SQL 服务器中翻译 R,您必须设置变量并输入 RESULTS SET。