使用 SQL 服务器的新 ODBC 驱动程序连接到 LocalDB

Connect to LocalDB with new ODBC Driver for SQL Server

更新:感谢 Dan Guzman,问题已经解决。 我犯了一个错误并使用旧的遗留 Driver={SQL Server}; 假设它是新的驱动程序。相反,我应该使用 Driver={ODBC Driver 11 for SQL Server},这是真正的新 ODBC 驱动程序。 我可以使用新驱动程序连接到 (Localdb)\v11.0


TL;TR:为什么我无法使用新的 Driver={SQL Server}; 连接到 (Localdb)\v11.0在连接字符串中,但是如果我将驱动程序切换到旧的 Driver={SQL Server Native Client 11.0}; ?

我可以连接

我使用的其余连接字符串参数是(如果在 C++ 代码中使用,反斜杠转义):

Server=(localdb)\v11.0;Integrated Security=True;

我正在尝试通过 ODBC 访问 SQL 服务器并使用无 DSN 连接字符串调用 SQLDriverConnect。如果我将驱动程序切换到 SQL Server Native Client 11.0,然后我突然可以连接了。

我还测试了使用 %systemdrive%\Windows\System32\odbcad32.exe 生成 FILEDSN,我观察到完全相同的问题。

我可以用新的 Driver={SQL Server} 连接的唯一本地数据库是 Server=DEVBOX\SQLEXPRESS(如果在 C++ 代码中使用,当然,反斜杠转义)。

我找不到任何关于 SQL 服务器的新 ODBC 驱动程序不支持 LocalDB 的确认信息。

仅在ODBC Driver for SQL Server for Linux

的FAQ中注明

Which features of SQL Server 2012 does this version of the driver support? The ODBC driver on Linux supports all server features in SQL Server 2012 except LocalDB.

如何使用 Windows 上的新 ODBC 驱动程序连接到 LocalDB?

更新: 我正在使用 Windows 10 Pro + VS2015。 我可以使用 SQL Server Management Studio 2016 (CTP) 连接到 (localdb)\v11.0DEVBOX\SQLEXPRESS。 (同样的问题已在 MSDN 论坛上提出,here。)

ODBC 驱动程序 SQL Server 是遗留的 SQL 服务器 ODBC 驱动程序,与 Windows 一起提供以实现向后兼容性。最新的 SQL 服务器 ODBC 驱动程序是 ODBC Driver 11 for SQL Server。我相信此 ODBC 驱动程序与 SQL Server 2016 CTP 一起安装。发布版本可作为 separate download.