使用dbAppendTable在SQL表中插入行

3
我正在尝试将来自r的数据插入到SQL Server表中。我必须读取数百个csv格式的文件,逐个在r中读取它们,处理它们,然后将它们写入SQL(一个单一的表,因此我必须插入行)。
我正在使用DBI和odbc包。我使用dbCreateTable创建空表,并使用dbAppendTable插入数据。
空表中的列数与我要插入的数据相同。
library(DBI)
library(odbc)

con <- dbConnect(odbc(), Driver = "SQL Server", Server = "myserver", 
                 Database = "mydb", trustedconnection = TRUE)

t <- read_csv("myfile.csv") %>% select(1,4:7,9:20 )
dbRemoveTable(con, "NEW_SQL_TABLE")
dbCreateTable(conn = con, "NEW_SQL_TABLE", t)
dbAppendTable(conn = con, "NEW_SQL_TABLE", t)

t2 <- dbReadTable(con,"NEW_SQL_TABLE")

我希望t2包含与t相同的记录,但是t2中没有任何记录

当我运行dbAppendTable时,控制台中出现了0,我不确定这代表什么。

润色后:

我希望t2里面的数据和t表里面的数据一样,但是实际上t2表里面没有数据。

当我运行dbAppendTable命令时,在控制台中出现了数字0,我不确定这个数字代表什么意思。

> dbAppendTable(conn = con, "NEW_SQL_TABLE", t)
[1] 0

我最终使用了dbWriteTable,显然dbAppendTable不起作用。如果有答案,仍然在此留下问题。 - ok1more
1个回答

1

使用dbWriteTable()代替dbCreateTable()和dbAppendTable()。


1
抱歉翻出一篇旧帖子...但是为什么这个方法可行而dbAppendTable()不行呢?例如,我有一个需要添加到我创建的表中的数据集,但是dbAppendTable()无法添加数据,但是dbWriteTable使用overwrite=TRUE却可以工作! - Brady

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接