使用RODBC包将数据帧导出到SQL server

使用RODBC包将数据帧导出到SQL server,sql,sql-server,r,rodbc,Sql,Sql Server,R,Rodbc,我正在使用R中的RODBC包从SQL Server数据库导入/导出数据帧。虽然进口没有问题。我不知道如何将数据帧的内容导出到现有的SQL表中 我试图使用包中可用的sqlQuery()函数,但我不确定如何在表中插入多条记录 关于如何插入行的示例将非常有用 我已确保表和数据框的列是相同的。这是我使用sqlSave()的代码。我正在使用SQLServer2008Conn是我使用odbcConnect()创建的连接: #创建要保存在SQL表中的数据 要保存的数据 使用DBI软件包我想补充一下Yan的答案

我正在使用R中的
RODBC
包从SQL Server数据库导入/导出数据帧。虽然进口没有问题。我不知道如何将数据帧的内容导出到现有的SQL表中

我试图使用包中可用的
sqlQuery()
函数,但我不确定如何在表中插入多条记录

关于如何插入行的示例将非常有用
我已确保表和数据框的列是相同的。

这是我使用
sqlSave()
的代码。我正在使用SQLServer2008
Conn
是我使用
odbcConnect()
创建的连接:

#创建要保存在SQL表中的数据
要保存的数据

使用DBI软件包

我想补充一下Yan的答案

在使用sqlSave()函数之前,请确保将默认数据库更改为表所在的正确数据库。特别是如果您想写入现有表

了解如何设置ODBC连接以及如何更改默认数据库

之后,您可以使用以下命令将数据转储到sql:

specificDB= odbcConnect(dsn ='name you set up in ODBC',uid = '***', pwd = '****')

sqlSave(specificDB, output_to_sql, tablename = 'a_table_in_specificDB', rownames = F,append = T)

close(specificDB)

它很慢。耐心点

sqlSave
与append属性一起使用。请参见下面的我的代码:

 sqlSave(uploaddbconnection, outputframe, tablename =
    "your_TableName",rownames=FALSE, append = TRUE)

谢谢严。我知道这个函数,但在数据帧相当大的情况下,它会抛出错误
sqlQuery()
是一个更通用的函数,它逐行插入数据框,如果数据框列是表的子集,则
sqlSave()
也不起作用
specificDB= odbcConnect(dsn ='name you set up in ODBC',uid = '***', pwd = '****')

sqlSave(specificDB, output_to_sql, tablename = 'a_table_in_specificDB', rownames = F,append = T)

close(specificDB)
 sqlSave(uploaddbconnection, outputframe, tablename =
    "your_TableName",rownames=FALSE, append = TRUE)