Excel:如何连接到sqlserver localDB


8

我创建了一个LocalDB,可以在MS sqlserver management studio 2014,linqpad和visual studio 2013中使用。

这是SSMS中“连接属性”对话框的一部分,其中显示了服务器名称: 在此处输入图片说明

我希望能够从excel中连接到该数据库。问题是Excel中的“数据连接向导”无法连接。

在这里,我输入的服务器名称与SSMS中“连接属性”给出的名称相同。

在此处输入图片说明

这是我得到的错误... 在此处输入图片说明

问题:

  • excel可以完全连接到localDB吗?我知道这CAN连接到SQL服务器数据库。LocalDB是否有一些限制可以防止这种情况发生?我认为LocalDB的全部目的是允许开发而无需建立独立的数据库。

  • 有替代的连接方式吗?还是我的服务器名称需要一些烦人的修改?


1
尝试.\mssqllocaldblocalhost\mssqllocaldb<comptuersIPAddress>\mssqllocaldb。您为(成功的)VS和Linqpad连接使用了哪个服务器名称?
Ƭᴇcʜιᴇ007

@Ƭᴇcʜιᴇ007,谢谢,我精确地复制/粘贴了在SSMS中打开数据库的属性对话框时找到的服务器名称。这三个例子都不行。可以在linqpad和SSMS上使用的服务器名称正是这样...(localdb)\ mssqllocaldb
Angelo

Answers:


6

多么免费的PITA!

通过执行以下步骤,我可以通过使用“数据连接向导”来使其工作。

  1. 从数据连接向导中选择“其他/高级”,然后单击“下一步”。我认为由sqlserver express创建的localDB将作为“ SQL Server”。显然不是!尽管我无法理解为什么。

在此处输入图片说明

  1. 选择“ SQL Server Native Client 11.0”作为提供程序。好的,我只是没有在上一个选项卡中选择“ SQL Server”。我也恰好正在运行sql server express的版本12,并且列表中没有“ 12”,也许它严格意义上是指客户端版本,这暗示着客户端11可以连接到服务器12?另一个认知剪纸。

在此处输入图片说明

  1. 输入在SSMS或linqpad中可用的相同服务器名称。选择Windows集成安全性。Test Connection现在可以工作了,可以选择数据库,然后将表转储到excel中。

在此处输入图片说明

做到这一点并不难,但是似乎没有逻辑上的顺理成章,您必须四处徘徊,直到听到喀哒声。


亲爱的,您正在连接到附带的SQL Server 2014,SQLNCLI12并且在屏幕快照中选择了“ Native Client 11”,即SQLNCLI11,出于某种原因,您没有excel会在2014年使用的“ Native Client 12”。
tbc 2015年

1

这是连接字符串(SQLServer 2012 / Excel 2013):
Server=(LocalDB)\MSSQLLocalDB; Integrated Security=true ;AttachDbFileName={mdf file full path}

哦,在我的PC上,我不得不使用;Trusted_Connection=Yes,这可能没有任何意义,因为我的笔记本电脑和PC都运行完全相同的SQLServer和Excel版本。


编辑

我无法重现该错误(我什至在虚拟机上安装了SQL Server 2014,它仍然可以工作)。您可以添加并可能对您有所帮助的唯一选项是,Provider=SQLNCLI11;或者Provider=SQLNCLI12;您可以通过sqllocaldb v在命令行中运行来确定要安装的版本。
那会产生类似:Microsoft SQL Server 2014 (12.0.2000.8)


谢谢,但它仍然给出一个错误。我必须删除您的“ server =“部分,以避免在错误对话框中出现“ parseConnectParams()”。当我这样做时,它会产生与以前相同的错误。
Angelo 2015年

@Angelo我更新了答案,请尝试直到结果为止。
tbc
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.