sql-server - sqlSave 出错

标签 sql-server r rodbc

我正在使用 sqlSave 添加我的矩阵 B,如下所示:

Noinscr
88877799
45645687
23523521
45454545

到 SQL 表。

所以我运行以下命令:

sqlSave(channel, b, "[testsFelix].[dbo].[TREB]", append = TRUE,
  rownames = FALSE, colnames = FALSE, safer = TRUE, fast = FALSE)

我收到以下错误:

Erreur dans sqlSave(channel, b, "[testsFelix].[dbo].[TREB]", append = TRUE,  : 
  42S01 2714 [Microsoft][SQL Server Native Client 10.0][SQL Server]
    There is already an object named 'TREB' in the database.
  [RODBC] ERROR: Could not SQLExecDirect
    'CREATE TABLE [testsFelix].[dbo].[TREB]  ("Noinscr" int)'

看到它不想删除表,即使 append=TRUE 存在,我也尝试删除我的 SQL 表并再次运行相同的代码。

我收到以下错误:

Erreur dans sqlColumns(channel, tablename) : 
  ‘[testsFelix].[dbo].[TREB]’: table not found on channel

所以我很困惑,当我想追加时,R 说它不能,因为表在那里,而当表不在那里时,R 说它不能在其中添加信息,因为表不在那里。我进入 SQL 以验证没有发生任何事情,但我看到 R 已经创建了具有正确列名 (Noinscr) 的表,但该表是空的。

请告诉我我做错了什么。 谢谢

最佳答案

我遇到了同样的问题。我意识到,默认情况下 sqlSave 会在“主”架构中创建表。我启动了 ODBC 数据源管理器并更改了默认数据库并选择了所需的数据库并且它起作用了。

关于sql-server - sqlSave 出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8142748/

相关文章:

r - 从字符到日期/时间的转换返回 NA

sql - 在 SQL Server 中创建数据层次结构

sql - 将存储过程的结果保存在表变量中

c# - 实体属性值 (EAV) 框架?

r - 如何根据其他列的值对列中的字符串进行复杂的转换?

r - 朴素贝叶斯分类器的文档术语矩阵 : unexpected results R

RODBC 连接失效

sql - 从 R 运行 .sql 文件

sql - 英国的 ServiceStack OrmLite 和 DateTimeOffset 支持

sql - R:从文本文件运行多行sql