如何从 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)

我有两个问题

  1. 我应该使用什么作为 "[your driver's name]"
  2. 我应该使用什么作为 "[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 一段时间了,没有问题)。