Sql server R:将数据插入现有SQL数据库。随机省略数据?

Sql server R:将数据插入现有SQL数据库。随机省略数据?,sql-server,r,rodbc,Sql Server,R,Rodbc,我尝试将R中的数据插入SQL表。为此,我编写了以下函数来创建INSERT语句: CreateInsert <- function(Dataframe, TableName){ Output=character() ColumnNames="(" Values=colnames(Dataframe) for (i in 1:ncol(Dataframe)) { ColumnNames=paste(ColumnNames, Values[i], ",",sep

我尝试将R中的数据插入SQL表。为此,我编写了以下函数来创建INSERT语句:

    CreateInsert <- function(Dataframe, TableName){
  Output=character()

  ColumnNames="("
  Values=colnames(Dataframe)
  for (i in 1:ncol(Dataframe)) {
    ColumnNames=paste(ColumnNames, Values[i], ",",sep="")
  }

  ColumnNames=substr(ColumnNames, 1, nchar(ColumnNames)-1)
  ColumnNames=paste(ColumnNames, ")",sep="")

  TableEtc=paste("INSERT INTO", TableName, ColumnNames)
  do.call("sprintf", c(paste(TableEtc, "VALUES  ('%s', '%s', '%s', '%s', '%s', '%s');"), Dataframe))

}
但是,它会随机忽略行。例如,我正在存储一个相关矩阵(融化成一个长矩阵)。我100%确信数据是完整的,但当存储数据并随机查询结果时,某些点缺失。知道为什么会这样吗?插入行的数量越大,发生这种情况的可能性就越大。虽然当我插入一行数千次(循环)时,甚至会发生hit

仅供参考:我还尝试使用sqlSave

sqlSave(DBconn, SelData, tablename='TABLENAME', append=TRUE, rownames=FALSE, safer=TRUE)
但这只是给了我一个错误“无法附加到表”,我不太愿意使用它,因为它也可以创建一个表,如果一个人不小心输入错误的话。创建我不希望由R中的用户执行的表


谢谢大家!

这让我一整天都在发疯。。。我想我已经找到了解决办法。问题似乎在于科学记数法。因此,我使用:

options(scipen=999)
(将其设置为0会将其恢复为默认值)


抱歉

这让我一整天都在发疯。。。我想我已经找到了解决办法。问题似乎在于科学记数法。因此,我使用:

options(scipen=999)
(将其设置为0会将其恢复为默认值)


抱歉

尝试将
verbose=TRUE
与SQLSaveThank一起使用!这确实解释了sqlSave:当identity_insert设置为OFF时,无法在表“CorrelationTable”中为identity列插入显式值。自动递增字段有问题,我读到的答案可能会用NA填充(然后会被跳过),我确实这样做了,但显然不起作用!尝试将
verbose=TRUE
与SQLSaveThank一起使用!这确实解释了sqlSave:当identity_insert设置为OFF时,无法在表“CorrelationTable”中为identity列插入显式值。自动递增字段有问题,我读到的答案可能会用NA填充(然后会被跳过),我确实这样做了,但显然不起作用!