SQL Server RODBC连接

问题描述:

有没有人有使用RODBC并连接到MS SQL Server 2005或2008的连接字符串示例。SQL Server RODBC连接

谢谢。

+7

大多数连接字符串问题可以在[connectionstrings.com](http://connectionstrings.com/)回答 – 2011-04-19 18:00:17

library(RODBC) 
dbhandle <- odbcDriverConnect('driver={SQL Server};server=mysqlhost;database=mydbname;trusted_connection=true') 
res <- sqlQuery(dbhandle, 'select * from information_schema.tables') 
+1

我正在尝试这个,但我得到错误“SQL Server不存在或访问被拒绝。”你必须输入用户名/密码吗?此外,我在我的远程站点上有一个dsn,但似乎没有提到。 RODBC文档对我来说并不清楚 – pssguy 2012-11-19 21:45:15

+3

该示例使用选项“trusted_connection = true”进行自动Windows身份验证。您还可以在连接字符串中提供username = ...和password = ...作为参数。 – Henrico 2012-12-07 20:21:15

+12

实际上对我来说'username'和'password'不起作用 - 我必须提供参数'uid = ...;'和'pwd = ...;'。 – Seb 2013-08-30 11:00:16

a posting to r-help摘自:

library(RODBC) 
channel <- odbcDriverConnect("driver=SQL Server;server=01wh155073") 
initdata<- sqlQuery(channel,paste("select * from test_DB .. 
test_vikrant")) 
dim(initdata) 
odbcClose(channel) 
+0

你会如何从Mac OSX做到这一点?同样的方式?这是可能的,与Windows登录要求? – mikebmassey 2012-01-28 21:24:32

+0

似乎不太可能,这将在Mac上使用与MS的SQL Server相同的机器,但也可能采用某种远程访问终端安排。 – 2013-11-19 16:39:19

+0

如何将这个命令写入linux上工作? – 2015-11-12 22:37:38

首先,你必须创建/配置DSN(具体DB ODBC连接)

然后安装RODBC库。

library(RODBC) 
myconn <-odbcConnect("MyDSN", uid="***", pwd="*******") 

fetchData<- sqlQuery(myconn, "select * from tableName") 
View(fetchData) 
close(myconn) 

尝试使用RSQLS包:https://github.com/martinkabe/RSQLS

非常快推数据从data.frame到SQL Server或从SQL Server拉到data.frame。

实施例:

library(devtools) 
install_github("martinkabe/RSQLS") 
library(RSQLS) 

cs <- set_connString("LAPTOP-USER\\SQLEXPRESS", "Database_Name") 
push_data(cs, dataFrame, "dbo.TableName", append = TRUE, showprogress = TRUE) 
df <- pull_data(cs, "SELECT * FROM dbo.TableName", showprogress = TRUE) 

该解决方案是要比RODBC :: sqlSaveDBI :: dbWriteTable更快更稳健。