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

时间:2015-11-27 14:59:18

标签: sql-server odbc localdb

更新:感谢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 Server并使用无DSN连接字符串调用SQLDriverConnect。如果我将驱动程序切换到 SQL Server Native Client 11.0 ,那么我突然可以连接。

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

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

我找不到任何确认新的SQL Server ODBC驱动程序不支持LocalDB。

仅在ODBC Driver for SQL Server for Linux

的常见问题解答中指出
  

此版本的驱动程序使用SQL Server 2012的哪些功能   支持?       Linux上的ODBC驱动程序支持SQL Server 2012中除LocalDB之外的所有服务器功能。

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

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

1 个答案:

答案 0 :(得分:7)

ODBC驱动程序SQL Server是Windows附带的旧版SQL Server ODBC驱动程序,用于向后兼容。最新的SQL Server ODBC驱动程序是ODBC Driver 11 for SQL Server。我相信这个ODBC驱动程序与SQL Server 2016 CTP一起安装。已发布的版本以separate download提供。