从R向SQL Server写入数据帧时处理“ uniqueidentifier”类型

时间:2019-07-11 09:19:41

标签: r sql-server guid r-dbi

我有一个要从R写入SQL Server 2018的260,000行以上的数据帧。我的一列包含GUID,我试图在SSMS中将数据类型设置为“ uniqueidentifier”,但我只能将通过varchar。我所有其他列均以我指定的数据类型进行浏览。

是否可以用R编写“ uniqueidentifier”?

我正在使用DBI包以及odbc中的dbWriteTable函数。

我试图通过使用field.types;设置数据类型;

library('odbc')
library('DBI')

dbWriteTable(conn, Id(schema = schema, table = "SAP_Event"),
    Event, field.types = c(GUID = "uniqueidentifier",
       `Work Order Event` = "varchar(max)",
            `Start Date` = "int",
            `End Date` = "int",
            `Campaign Tier` = "varchar(max)",
            `Multiple Group Event` = "varchar(max)",
            `Default Revision` = "varchar(max)",
            `WO Event Description` = "varchar(max)",
            DateTimeAdded = "datetime",
            DateTimeEnd = "datetime"),  append = TRUE, row.names = FALSE)

返回,

  

result_insert_dataframe(rs @ ptr,values)中的错误:     nanodbc / nanodbc.cpp:1791:07006:[Microsoft] [ODBC SQL Server驱动程序]限制的数据类型属性违反

我尝试省略field.types参数,该参数会产生相同的错误消息。例子

dbWriteTable(conn, Id(schema = schema, table = "SAP_Event"), Event, append = TRUE, row.names = FALSE)

Setting overwrite = TRUE will write to SSMS but my GUID column becomes varchar.
dbWriteTable(conn, Id(schema = schema, table = "SAP_Event"), Event, overwrite = TRUE, row.names = FALSE)

谢谢。

0 个答案:

没有答案