尝试在线找到了一些不同的软件包和方法后,我尚未找到一种解决方案,该解决方案可用于将r从r插入从r中插入SQL Server的现有表中。我在MySQL方面取得了巨大的成功,但是SQL Server似乎更加困难。
我设法使用DBI软件包编写了一个新表格,但是我找不到一种插入使用此方法的方法。查看文档,似乎没有一种插入的方式。
由于使用RODBC软件包中的SQLQUERY有超过1000行的数据,似乎也很不可分割。
有人可以建议将大量数据从数据框中插入现有SQL表中的工作方法吗?
使用R-Postgres特定驱动程序的R和PostgreSQL我有类似的需求。我想SQLServer可能存在类似的问题。我发现最好的解决方案是使用DBWritEtable或一个基础函数写入数据库中的临时表,从流来写入非常大的表(例如,对于Postgres,PostgresqlcopyIndataFrame,例如)。后者通常需要在定义和对齐SQL数据类型和R类以确保写作方面需要更多的工作,而DBWritetable的位置往往更容易。一旦写入临时表,就会发布SQL语句,以便像在数据库环境中一样插入表中。以下是使用高级DBI库数据库调用的示例:
dbExecute(conn,"start transaction;")
dbExecute(conn,"drop table if exists myTempTable")
dbWriteTable(conn,"myTempTable",df)
dbExecute(conn,"insert into myRealTable(a,b,c) select a,b,c from myTempTable")
dbExecute(conn,"drop table if exists myTempTable")
dbExecute(conn,"commit;")