Excel: как подключиться к sqlserver localDB

8

Я создал LocalDB, с которой я могу работать в MS sqlserver management studio 2014, linqpad и visual studio 2013.

Вот часть диалога «свойство соединения» в SSMS, которая показывает имя сервера: введите описание изображения здесь

Я хотел бы иметь возможность подключиться к этой базе данных из Excel. Проблема в том, что «Мастер подключения к данным» в Excel не может подключиться.

Здесь я ввел то же имя сервера, которое было указано в «свойствах соединения» в SSMS ....

введите описание изображения здесь

И вот ошибка, которую я получаю ... введите описание изображения здесь

Вопросов:

  • Может ли Excel подключиться к локальной базе данных вообще? Я знаю, что МОЖЕТ подключиться к базам данных sql-сервера. Есть ли какое-то ограничение в LocalDB, которое мешает этому? Я думал, что весь смысл LocalDB состоит в том, чтобы позволить разработку без усилий по созданию отдельной базы данных.

  • Есть ли альтернативный способ подключения? Или имя моего сервера требует раздражающей модификации?

Angelo
источник
1
Попробуй .\mssqllocaldb, или localhost\mssqllocaldb, или <comptuersIPAddress>\mssqllocaldb. Какое имя сервера вы использовали для ваших (успешных) подключений VS и Linqpad?
Ƭᴇcʜιᴇ007
@ Ƭᴇcʜιᴇ007, спасибо, я скопировал / вставил точно имя сервера, найденное при открытии диалога свойств базы данных в SSMS. Не идти на все три примера. Имя сервера, которое работает на linqpad и SSMS, именно это ... (localdb) \ mssqllocaldb
Angelo

Ответы:

6

Какая безвозмездная пита!

Мне удалось заставить его работать с помощью «мастера подключения данных», выполнив следующие действия ....

  1. Выберите «Другое / Дополнительно» в мастере подключения к данным, а затем нажмите «Далее» . Я думал, что localDB, созданный sqlserver Express, будет работать как «SQL Server». Очевидно нет! хотя я не могу понять, почему.

введите описание изображения здесь

  1. Выберите «Собственный клиент SQL Server 11.0» в качестве поставщика. ОК, я просто НЕ выбрал «SQL Server» на предыдущей вкладке. Также я использую версию 12 SQL Server Express, и в списке нет "12" - возможно, это строго относится к версии клиента, с тонким подтекстом, что клиент 11 может подключиться к серверу 12? Еще одна познавательная вырезка из бумаги.

введите описание изображения здесь

  1. Введите то же имя сервера, которое работает в SSMS или linqpad. Выберите встроенную безопасность Windows. Test Connection теперь работает, и есть возможность выбрать базу данных и вывести таблицу в Excel.

введите описание изображения здесь

Это не сложно сделать, но, кажется, нет никакого логического потока, который вы должны колебаться, пока что-то не щелкнет.

Angelo
источник
Уважаемый, вы подключаетесь к SQL Server 2014, который входит в комплект поставки, и на своих снимках SQLNCLI12экрана вы выбрали «Native Client 11», то есть SQLNCLI11, по некоторым причинам, у вас нет «Native Client 12», который превосходно выглядит в 2014 году.
TBC
1

Это строка подключения (SQLServer 2012 / Excel 2013):
Server=(LocalDB)\MSSQLLocalDB; Integrated Security=true ;AttachDbFileName={mdf file full path}

О, на моем ПК мне пришлось пользоваться ;Trusted_Connection=Yes, это может не иметь никакого смысла, так как и на моем ноутбуке, и на ПК установлены ТОЧНЫЕ версии SQLServer и Excel.


редактировать

Я не могу воспроизвести ошибку (я даже установил SQL Server 2014 на виртуальной машине, и она все еще работает). Единственный вариант, который вы можете добавить и помочь вам, - Provider=SQLNCLI11;ИЛИ Provider=SQLNCLI12;вы можете узнать, какая версия установлена, запустив ее sqllocaldb vв командной строке.
Это будет производить что-то вроде:Microsoft SQL Server 2014 (12.0.2000.8)

TBC
источник
спасибо, но все равно выдает ошибку. Мне пришлось удалить вашу часть "server =", чтобы избежать получения "parseConnectParams ()" в диалоге ошибок. Когда я сделал это, он выдал ту же ошибку, что и раньше.
Анджело
@ Анджело Я обновил свой ответ, пожалуйста, до результата, как только вы попробуете.
ТПГ