Підключіться до LocalDB через SQLCMD в PowerShell


11

Я намагаюся отримати доступ до сервера "localdb \ MSSQLLocalDB" на своєму комп’ютері через PowerShell з утилітою SQLCMD. Я використовую PowerShell v5, .NET v5.0, а ім'я сервера - це (localdb)\MSSQLLocalDBколи я підключаюся до нього в Microsoft SQL Server Management Studio 2014.

PS C:\> sqlcmd -S localdb\MSSQLLocalDBі PS C:\> sqlcmd -S .\localdb\MSSQLLocalDBпризводить до цієї помилки:

Sqlcmd: Помилка: драйвер Microsoft ODBC 11 для SQL Server: Мережеві інтерфейси сервера SQL Server: Помилка пошуку сервера / Вказаний екземпляр [xFFFFFFFF].

Я запитав ім'я сервера в Management Studio з SELECT @@ServerNameі використовував це після -Sкоманди, вказаної вище, і отримав ту саму помилку.

PS C:\> sqlcmd -S localdb видає цю помилку:

Sqlcmd: Помилка: драйвер Microsoft ODBC 11 для SQL Server: іменований трубопровідник: Не вдалося відкрити з'єднання з SQL сервером [53]

Інші зауваження: я можу підключитися до сервера та працювати з базою даних з ім'ям testdb01 в додатку консолі C # за System.Data.SqlClientдопомогою цієї лінії підключення:

"Data Source=(localdb)\\mssqllocaldb;Initial Catalog=testdb01;Integrated Security=SSPI;"

Відповіді:


9

Корпус назви екземпляра не має значення.

Вам потрібно спробувати:

sqlcmd -S "(localdb)\MSSQLLocalDB" -d testdb01

Частина "localdb" повинна бути включена в круглі дужки, оскільки це спеціальний синтаксис, який вказує на API, специфічний для SQL Server Express LocalDB, який дозволяє автоматичний запуск примірника після посилання в рядок з'єднання. Ціле ім'я екземпляра потрібно укласти в подвійні лапки. Показаний вище командний рядок працює для мене, принаймні, поза PowerShell.


Включення (localdb)в круглі дужки виглядає так, що воно відокремлює його як команду, і воно дає таку помилку: Термін 'localdb' не розпізнається як ім'я командлету, функції, файлу сценарію або керованої програми.
jmk22

@ Jmk22 Потім спробуйте помістити ім'я сервера цілком в подвійних лапках: -S "(localdb)\MSSQLLocalDB". Якщо це не спрацює, ми можемо спробувати уникнути дужок. Але якось ті парени повинні бути там.
Соломон Руцький

1
Цитати зробили це, дякую! Я відредагував вашу відповідь, щоб це відобразити.
jmk22
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.