如何从 R Studio 连接到 SQL
How to Connect to SQL from R Studio
我在 Windows 10 上使用 Microsoft SQL Server Management Studio 连接到以下数据库,这就是登录屏幕的样子:
Server Type: Database Engine
Server Name: sqlmiprod.b298745190e.database.windows.net
Authentication: SQL Server Authentication
Login: my_user_id
Password: my_password
This recent R Studio article 提供了一种使用以下方法从 R Studio 连接到 SQL 服务器的简单方法:
con <- DBI::dbConnect(odbc::odbc(),
Driver = "[your driver's name]",
Server = "[your server's path]",
Database = "[your database's name]",
UID = rstudioapi::askForPassword("Database user"),
PWD = rstudioapi::askForPassword("Database password"),
Port = 1433)
我有两个问题
- 我应该使用什么作为
"[your driver's name]"
?
- 我应该使用什么作为
"[your database's name]"
?
我将使用的服务器路径是 sqlmiprod.b298745190e.database.windows.net
(从上方),我将端口保留在 1433
。如果那是错误的,请告诉我。
Driver
根据@Zaynul 的评论和我自己的经验,driver 字段是一个带有 ODBC driver 名称的文本字符串。 This answer 包含更多详细信息。
你可能想要这样的东西:
Driver = 'ODBC Driver 17 for SQL Server'
(来自@Zaynul 的评论)
Driver = 'ODBC Driver 11 for SQL Server'
(来自我自己的上下文)
数据库
您要连接的默认数据库。大致相当于用
启动 SQL 脚本
USE my_database
GO
如果您的所有工作都在一个数据库中,那么请将其名称放在这里。
在某些情况下,您应该可以将此留空,但是每次连接到 table.[=20 时,您都必须使用 in_schema
命令添加数据库名称=]
如果您跨多个数据库工作,我建议输入一个数据库的名称,然后使用 in_schema
命令在每个连接点指定数据库。
使用 in_schema
命令的示例 (more details):
df = tbl(con, from = in_schema('database.schema', 'table'))
虽然我没试过,如果你没有架构那么
df = tbl(con, from = in_schema('database', 'table'))
应该也能用(我已经使用这个 hack 一段时间了,没有问题)。
我在 Windows 10 上使用 Microsoft SQL Server Management Studio 连接到以下数据库,这就是登录屏幕的样子:
Server Type: Database Engine
Server Name: sqlmiprod.b298745190e.database.windows.net
Authentication: SQL Server Authentication
Login: my_user_id
Password: my_password
This recent R Studio article 提供了一种使用以下方法从 R Studio 连接到 SQL 服务器的简单方法:
con <- DBI::dbConnect(odbc::odbc(),
Driver = "[your driver's name]",
Server = "[your server's path]",
Database = "[your database's name]",
UID = rstudioapi::askForPassword("Database user"),
PWD = rstudioapi::askForPassword("Database password"),
Port = 1433)
我有两个问题
- 我应该使用什么作为
"[your driver's name]"
? - 我应该使用什么作为
"[your database's name]"
?
我将使用的服务器路径是 sqlmiprod.b298745190e.database.windows.net
(从上方),我将端口保留在 1433
。如果那是错误的,请告诉我。
Driver
根据@Zaynul 的评论和我自己的经验,driver 字段是一个带有 ODBC driver 名称的文本字符串。 This answer 包含更多详细信息。
你可能想要这样的东西:
Driver = 'ODBC Driver 17 for SQL Server'
(来自@Zaynul 的评论)Driver = 'ODBC Driver 11 for SQL Server'
(来自我自己的上下文)
数据库
您要连接的默认数据库。大致相当于用
启动 SQL 脚本USE my_database
GO
如果您的所有工作都在一个数据库中,那么请将其名称放在这里。
在某些情况下,您应该可以将此留空,但是每次连接到 table.[=20 时,您都必须使用 in_schema
命令添加数据库名称=]
如果您跨多个数据库工作,我建议输入一个数据库的名称,然后使用 in_schema
命令在每个连接点指定数据库。
使用 in_schema
命令的示例 (more details):
df = tbl(con, from = in_schema('database.schema', 'table'))
虽然我没试过,如果你没有架构那么
df = tbl(con, from = in_schema('database', 'table'))
应该也能用(我已经使用这个 hack 一段时间了,没有问题)。