Вот мой код:sqlSave и sqlDrop в R
library('RODBC')
db.handle <- odbcDriverConnect('driver={SQL Server Native Client 11.0};server=server_name;database = db_name;trusted_connection=yes')
sql_table <- 'db_name.table_name'
sqlDrop(db.handle, sql_table, errors = TRUE)
sqlSave(db.handle,df_small,tablename = sql_table,safer=FALSE,append=TRUE,
rownames = FALSE)
close(db.handle)
Когда я исполняю строку:
sqlDrop(db.handle, sql_table, errors = TRUE)
Я получаю сообщение об ошибке:
Error in odbcTableExists(channel, sqtable, abort = errors) :
‘db_name.table_name’: table not found on channel
Когда я выполнить строку:
sqlSave(db.handle,df_small,tablename = sql_table,safer=FALSE,append=TRUE,
rownames = FALSE)
я получаю следующее сообщение об ошибке:
Error in sqlSave(db.handle, df_small, tablename = sql_table, safer = FALSE, : 42S01 2714 [Microsoft][SQL Server Native Client 11.0][SQL Server] There is already an object named 'table_name' in the database.
[RODBC] ERROR: Could not SQLExecDirect 'CREATE TABLE db_name.table_name ("State_rename" varchar(255), "CoverageType" varchar(255))'
я выполнить код последовательно и не могу понять, как оба сообщения об ошибках могут быть правдой.
Спасибо за предложение. Теперь 'sqlDrop' генерирует ошибку' Ошибка в odbcTableExists (channel, sqtable, abort = errors): 'table_name': таблица не найдена на канале, а sqlSave генерирует ошибку 'Ошибка в sqlSave (db.handle, df_small, tablename = sql_table, более безопасный = FALSE,: 42000 262 [Microsoft] [SQL Server Native Client 11.0] [SQL Server] Разрешено CREATE TABLE в базе данных «master». [RODBC] ОШИБКА: не удалось SQLExecDirect 'CREATE TABLE имя_таблицы ("State_rename" varchar (255), «CoverageType» varchar (255)) '' – user1700890
Хмммм ... что такое истинное имя таблицы *? Это может быть [зарезервированное слово] (https://msdn.microsoft.com/en- us/library/ms189822.aspx). Можете ли вы подтвердить таблицу базы данных в Management Studio или другой консоли? – Parfait