8

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

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

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

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

И вот ошибка, которую я получаю ...

Вопросы:

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

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

2 ответа2

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. Тестовое соединение теперь работает, и есть возможность выбрать базу данных и вывести таблицу в Excel.

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

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)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .