使用新的ODBC驱动程序连接到LocalDB的SQL Server

5

更新:感谢Dan Guzman的帮助,问题已解决。

我犯了一个错误,使用了旧的传统Driver={SQL Server};,认为它是新的驱动程序。相反,我应该使用实际的新ODBC驱动Driver={ODBC Driver 11 for SQL Server}

我可以使用新驱动程序连接到(Localdb)\v11.0


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

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

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

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

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

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

我找不到任何证实新版ODBC Driver for SQL Server不支持LocalDB的确认。

只在Linux上的ODBC Driver for SQL Server FAQ中指出。

这个驱动程序版本支持SQL Server 2012的哪些功能? Linux上的ODBC驱动程序支持SQL Server 2012中的所有服务器特性,除了LocalDB。

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

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


SQL-Native-Client已安装吗? - CPMunich
@CPMunich 我相信我在odbcad32.exe中看到它列出的事实表明它已安装。顺便说一下,我已经添加了操作系统环境信息。 - mloskot
1个回答

8

ODBC驱动程序SQL Server是Windows附带的用于向后兼容的传统SQL Server ODBC驱动程序。最新的SQL Server ODBC驱动程序是ODBC Driver 11 for SQL Server。我相信这个ODBC驱动程序已经随SQL Server 2016 CTP安装。发布版本可作为单独下载获取。


我的错误,确实如此。我找到了MSDN页面(https://msdn.microsoft.com/en-us/library/jj730315.aspx),它证实:连接字符串中指定的驱动程序名称是ODBC驱动程序11 for SQL Server。 - mloskot
2
仅供更新:最新的SQL Server ODBC驱动程序现在是13。您可以在此处下载它(https://learn.microsoft.com/en-us/sql/connect/odbc/download-odbc-driver-for-sql-server)。我尝试使用RODBC连接到本地db实例。使用传统的{SQL Server}驱动程序失败,但使用{ODBC Driver 13 for SQL Server}成功。 - Ryan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接